21. december 2006 - 11:09Der er
15 kommentarer og 1 løsning
Script til import af data fra csv
Jeg er blevet stillet en herlig lille Excel opgave.
Jeg har et Excel spørgeskema, der skal udfyldes med en hulens masse oplysninger. Disse oplysninger ligger en kommasepareret CSV fil, i formatet "oplysning1","oplysning2","oplysning3", osv...
Fra excel arket, skal jeg have mulighed for at indtaste filnavnet på csv filen, hvorefter import af data til arket skal ske.
denne kode skal indsættes i arkets eget kodemodul (højreklik på arkfanen og vælg Vis Programkode og indsæt koden.
Den virker automatisk ved ændring af Celle A1, hvor jeg formader du skriver et nyt filnavn.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a1")) Is Nothing Then FSOReadFile (Target.Text) End If
End Sub Sub FSOReadFile(filnavn) Dim fs, a Dim MyVar Set fs = CreateObject("Scripting.FileSystemObject") Set a = fs.OpenTextFile(filnavn, 1, False) MyVar = Split(a.ReadAll, ",") Range("B2") = MyVar(0) Range("B3") = MyVar(1) Range("F6") = MyVar(2) Range("F7") = MyVar(3) 'ect.....
Du får lige hele koden og lavet så den ser efter csv-filer
Private Sub CommandButton1_Click() Dim Fil As String Fil = Application.GetOpenFilename(("CSV-Filer (*.csv), *.csv")) If Not Fil = "False" Then FSOReadFile (Fil) End Sub
Sub FSOReadFile(filnavn) Dim fs, a Dim MyVar Set fs = CreateObject("Scripting.FileSystemObject") Set a = fs.OpenTextFile(filnavn, 1, False) MyVar = Split(a.ReadAll, ",") Range("B2") = MyVar(0) Range("B3") = MyVar(1) Range("F6") = MyVar(2) Range("F7") = MyVar(3) 'ect..... a.Close End Sub
Jeg kan sagtens se ideen med scriptet. Og det ser rigtig fornuftigt ud. Jeg kan bare ikke få det til at fungere i praksis. Men nu er jeg heller ikke vanvittigt hård til Excel.
Kan jeg lokke dig til at proppe det i et ark, og sende det til mig? :)
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.