Avatar billede Nanarsi Juniormester
03. marts 2016 - 08:56 Der er 9 kommentarer

csv fil åbnes forkert

Hej

Jeg har en csv fil som når jeg åbner den manuelt (dobb.klik i stifinder) åbner med dataene fordelt i celler i 2 rækker.

Når jeg åbner den samme fil via VBA får jeg alle dataene semikolon separeret i den første celle i hver af de 2 rækker.

Jeg åbner filen med:
[Workbooks.Open FileName:= "test.csv"]

Er der en måde at få VBA til at åbne filen så dataene er fordelt på celler?

alternativt:
Hvad er den nemmeste måde at fordele de semikolon separeret date til celler?

Mvh Nanarsi
Avatar billede kim1a Ekspert
03. marts 2016 - 09:17 #1
Jeg følger lige med. Jeg har modtaget en løsning af en programmør, men forstår den ikke - så en simpel løsning med vba til åbning af csv er bestemt brugbar.
Avatar billede claes57 Ekspert
03. marts 2016 - 09:51 #2
kaldet er
expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)

og format er
Value Delimiter
1 Tabs
2 Commas
3 Spaces
4 Semicolons
5 Nothing
6 Custom character (see the Delimiter argument)

jeg har ikke nærmere eksempel, da min 2007 ikke længere har online-support.
Avatar billede Nanarsi Juniormester
03. marts 2016 - 20:30 #3
Tak claes57

jeg har prøvet med:
>>>>>>>>>>>>>>>>>>>>>
Sub test()
Dim FileNAme As String
FileNAme = "K:\report.csv"

Workbooks.Open FileNAme:=FileNAme, Delimiter:=";"

End Sub
>>>>>>>>>>>>>>>>>>>>>>

men stadig med det same resultat hvor hele den semikolon separeret tekst ligger i den første celle.

Jeg har også læst lidt på https://msdn.microsoft.com/en-us/library/office/ff194819.aspx men stadig uden at blive klogere...
Kan der være nogle andre andre parametre der kan betyde noget i denne sammenhæng?
Avatar billede claes57 Ekspert
03. marts 2016 - 21:59 #4
lad være med at oprette en variabel med beskyttede navne (FileNAme)

jeg har så læst microsoft hjælpefilen som

Sub test()
Workbooks.Open(FileName:="K:\report.csv", Format:=4)
End Sub

hvis du vil bruge en variabel til filnavn, så
Sub test()
filnavn="K:\report.csv"
Workbooks.Open(FileName:=filnavn, Format:=4)
End Sub
Avatar billede claes57 Ekspert
03. marts 2016 - 22:00 #5
test også uden : altså
Workbooks.Open(FileName="K:\report.csv", Format=4)
Avatar billede Nanarsi Juniormester
04. marts 2016 - 17:57 #6
Jeg har ændret variablens navn og prøvet uden variable, men stadig med samme resultat...

Sub test()
Dim CsvFile As String
CsvFile = "K:\report.csv"
Workbooks.Open FileNAme:=CsvFile, Format:=4 ' (uden parenteser)
End Sub
Avatar billede Nanarsi Juniormester
04. marts 2016 - 23:16 #7
kim1a
Har du mulighed for at dele den løsning du har fået fra din programør.
Jeg vil gerne prøve om jeg kan gennemskue den ;-)
\\Nanarsi
Avatar billede Nanarsi Juniormester
07. marts 2016 - 08:31 #8
Efter lidt mere søgning fandt jeg løsningen :-)

Sub test()
Dim CsvFile As String
CsvFile = "K:\report.csv"
Workbooks.Open FileNAme:=CsvFile, Format:=4, Local:=True
End Sub

Claes: du har været til størst hjælp her, så send et svar :-)
Avatar billede Nanarsi Juniormester
26. april 2016 - 08:53 #9
claes57 sender du et svar?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester