28. september 2004 - 00:30Der er
11 kommentarer og 1 løsning
Filformat indlæsning, VBA
Hej Experter.
Jeg har brug for input til VBA kode. Jeg har en tab sep. fil som ser således ud: sko<tab>rød<tab>43 sko<tab>blå<tab>32 støvle<tab>gul<tab>23 sko<tab>blå<tab>33
Hvordan indlæses den i en matrix, så der senere kan manipuleres med denne? Hvordan oprette en pivottabel så så de forskellige fodtøjstyper har hver sin matrix?
Der er pt ca 63000 linier (er der en begrænsning mht dette?)
Tak - der læses godt nok ind, den reelle problemstilling er, at det er tab sep, og det ønskes en matrix med en værdi pr variabel. Jeg forestiller mig indlæsning på linieniveau med en 3 seperate værdier pr linie. Vil antage at det er hurtigere med ændringer i en matrix fremfor på celle niveau.
Mht 65k, så er jeg bekendt med antal linier, men gælder dette også hvis man laver en matrix?
Hvis min ovenstående kommentar er korrekt, så kan nedenstående kode bruges til at lægge data ind i en matrix-variabel.
Funktionen læser først data ind i regnearket og derefter over i en matrice. Denne fremgangsmåde er valgt, da det umiddelbart er den letteste måde at læse en tab-separeret fil (en kommasepareret kan lettere læses direkte ind i matricen).
Sub FilTilMatrix() Dim DataMatrix() As Variant Dim Antal, i As Integer
Din antagelse er helt korrekt - det var reelt det, som jeg forespurgte.
Jeg kan faktisk selv bestemme om det er tab eller kommasepareret, og hvis jeg kan gøre det lettere med kommaseparet vil jeg hellere det - især hvis jeg undgår a skrive i celler fremfor direkte i matrixen.
Vil du smide et svar, så jeg kan give point?
Hvis du får en voldsom trang til at lave komma varianten, så vil jeg være glad for det.
Jeg har ikke lige haft mulighed for at afprøve den, og jeg har faktisk slet ikke nogen erfaring med den, men det skulle være noget i den her retning (og så slipper du jo for Excel's liniebegrænsning)
Sub FilTilMatrix2() Dim DataMatrix(), SkoMatrix(), StøvleMatrix() As Variant Dim Antal, i As Integer
myFile = Application.GetOpenFilename("Text Files,*.txt") Open myFile For Input As #1
Antal = 0 Do While Not EOF(1) Antal = Antal + 1 ReDim Preserve DataMatrix(3, Antal) Input #1, DataMatrix(1, i), DataMatrix(2, i), DataMatrix(3, i) Loop Close #1
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.