Avatar billede tempkoder Nybegynder
29. januar 2008 - 11:54 Der er 7 kommentarer og
1 løsning

Fra fil til Excel via makro

Hej,

Jeg sidder med et problem jeg ikke kan finde en løsning på.
Jeg skal have noget simpel kommasepareret data fra en .txt fil over i et Excel ark.
Der vil være variende mængde af data, men det vi lnaturligvis altid være i samme format.
Det må meget gerne være vha. makro, da jeg har leget en del med disse, men hvis der er nogen som har nogle geniale ideer er jeg lutter øre. Håber 45 point er nok. Ved jo ikke helt hvor svært det her er for andre end mig ;-)

Mvh Fiskeren
Avatar billede epimetheus Nybegynder
29. januar 2008 - 17:37 #1
Du kan aflæse en txt fil på denne måde.

Public Sub AflæsTxtFil()
  Dim FilNummer As Integer
  Dim FilNavn As String
  Dim lText As String
  FilNummer = FreeFile
  FilNavn = "c:\temp\minfil.txt"
  Open FilNavn For Input As #FilNummer
  Do
    Line Input #FilNummer, lText
    ' Gør et eller andet med lText
  Loop Until EOF(FilNummer)
  Close #FilNummer
End Sub

Den aflæser en linje af gangen, indtil der ikke er flere linjer.
Avatar billede tempkoder Nybegynder
30. januar 2008 - 10:37 #2
Det virker rigtig fint, men det tager ikke højde for den kommasepareret del.
Fil eks:
#125468,901671000,23
#125468,901661000,21
#125468,90ACC1770,2

Dvs. jeg skal traverserer linien når den er hentet. Hvis du har et eksempel på det så er jeg da meget taknemlig.
Avatar billede tempkoder Nybegynder
30. januar 2008 - 11:51 #3
En ting til. Meget mærkligt, men koden vælger at smide 2 symboler ÿþ ind foran den første, og kun den første linie!?
Avatar billede tempkoder Nybegynder
30. januar 2008 - 12:00 #4
Har fundet en løsning på det med separering af data v. komma.
Men forstår stadig ikke hvorfor den indsætter disse 2 symboler foran den første linie. epimetheus, hvis du har et svar så er jeg meget taknemlig, ellers så bare smid et svar og du får point.
Avatar billede tempkoder Nybegynder
30. januar 2008 - 12:01 #5
Her er min komma separator.
Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 2), Array(2, 2), Array(3, 2)), TrailingMinusNumbers:=True
Ja.. det er en optaget Makro :-)- men det virker
Avatar billede epimetheus Nybegynder
30. januar 2008 - 13:24 #6
Med dit fil eksempel, har jeg ikke problemer med ekstra symboler, der ikke burde være der. Jeg har desværre ikke en løsning på det problem.

Jeg samler ikke på point, så dem beholder du bare selv :-)
Avatar billede tempkoder Nybegynder
30. januar 2008 - 13:41 #7
Nobelt.
Jeg finder ud af det med symbolerne.
Avatar billede tjacob Juniormester
30. januar 2008 - 18:32 #8
En kommentar til de underlige tegn i starten:

Det er fordi filen <oprindeligt> er blevet skrevet/outputtet som "Little Endian UTF-16". ÿþ er BOM-karakter til denne encoding (det er "zero-width no-break space"). Som bare bliver fortolket anderledes (som ÿþ) af VBA der læser Unicode. Se mere her: http://en.wikipedia.org/wiki/Byte_Order_Mark.
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
Kurser inden for grundlæggende programmering

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