Går det på något vis att skapa en CSV fil av en excel fil via vb6? Om du nöjer dig med en komma-separerad fil kan du dra igång Excel i bakgrunden, öppna filen och köra spara som. Det går dock inte att få en semikolon-separerad på detta sätt och dessutom kan det vara lite segt att starta Excel. Tack! så här: Så här: Ojdå, först kommer ingenting och sedan kommer allting! Suveränt!! :-) Tusen tack. Det finns tyvärr ingen OverWrite-parameter så du kan välja mellan att först ta bort filen med t.ex. kill eller att slå av Excels meddelanden med DisplayAlert = False. Kom ihåg att slå på dem ingen bara! Tusen tack!!! :-). Funktionen verkar lite buggig. Jag har läst tidigare att kommatecken är hårdkodat när man kör SaveAs med xlCSV, men du fick ju semikolon först... Vilken version av Excel kör du? Du kanske kan köra tabb-separerat? Jo, snurrit. Det var ju bra att du har Office 2002! Jag har nämligen brottats med det här problemet i Office 2000 och där fanns ingen lösning :-( Men tydligen har tillräckligt många klagat för i 2002 har de lagt till en parameter - Local. Testa det här får du se:Excel till CSV
C:\Excelfil.xls till (MS DOS) CSV Fil C:\Fil.csv "Semikolon separerad"
Tacksam för hjälp och tips.Sv: Excel till CSV
Mitt andra förslag är att läsa Excelfilen med ADO och skriva till en fil med standar I/O eller FileSystemObject.Sv: Excel till CSV
Vet inte hur man väljer CSV? Syntax?
xlBook.SaveAs App.Path & "\test.csv", "CSV"
xlBook.Close savechanges:=False
Runtime error 1004Sv: Excel till CSV
<code>
xlBook.SaveAs Filename:=App.Path & "\test.csv", FileFormat:=xlCSV
</code>Sv: Excel till CSV
xlBook.SaveAs App.Path & "\test.csv", xlCSV
eller om du inte har en referens till Excel
xlBook.SaveAs App.Path & "\test.csv", 6
/ÅsaSv: Excel till CSV
sorry för dubbelpostning...Sv: Excel till CSV
När jag använde:
xlBook.SaveAs App.Path & "\test.csv", 6
så blev det komma separerat men när jag använde
FileFormat:=xlCSV
så blev det semikolon som jag ville ha, kanon!
Stötte på lite problem på vägen.
Hur sätter man skriv över fil?
OverWrite=True? eller kall man ta bort filen kanske med Kill?
Jag vill inte ha några medelanden.Sv: Excel till CSV
<code>
Sub Test()
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs D:\Testarea\Bok2.xls"
Application.DisplayAlerts = True
End Sub
</code>Sv: Excel till CSV
.. Nu blir filformatet Ascii och den blir comma separerad istället, det blev när jag la till det sissta
Application.DisplayAlerts = False
Går det att styra så att det blir semikolon separerat och Application.DisplayAlerts = False?
Jag kan inte använda komma för pris använder komma!
/PerSv: Excel till CSV
Sv: Excel till CSV
Office 2002
Nu lyckas jag inte alls få semikolon.
Men om jag öppnar Excel och spara som CSV så blir det semikolon, och ANSI åäö.
Men inte från VB code.
/?
<code>
'Annrop: Save_As_CSV App.Path & "\Bok1.xls", "Blad1"
Public Sub Save_As_CSV(xlFileName As String, _
xlWorksheet As String)
On Error GoTo SetExcel_Err
' Create the Excel App Object
Set xlApp = CreateObject("Excel.Application")
' Create the Excel Workbook Object.
Set xlBook = xlApp.Workbooks.Open(xlFileName)
xlApp.DisplayAlerts = False
xlBook.SaveAs FileName:=App.Path & "\" & Format(Time, "HHMMSS") & ".csv", FileFormat:=xlCSV
xlBook.Close savechanges:=False
xlApp.DisplayAlerts = True
xlApp.Quit
</code>Sv: Excel till CSV
<code>
xlBook.SaveAs FileName:=App.Path & "\" & Format(Time, "HHMMSS") & ".csv", _
FileFormat:=xlCSV, Local:=True
</code>