Avatar billede japping Nybegynder
29. februar 2008 - 15:21 Der er 6 kommentarer og
1 løsning

Læse data fra en txt-fil i Excel.

Hvordan åbner, læser og lukker jeg en txt-fil fra VB i Excel ?
Avatar billede familienriis Nybegynder
29. februar 2008 - 18:48 #1
Du vælger DATA og IMPORTER EKSTERNE DATA

Så er det meget let at importere.
Hvis det er noget du skal gøre mange gange er det bare at optage det med makrooptageren.

Som feks.


Sub Makro3()
With ActiveSheet.QueryTables.Add(Connection:="TEXT;F:\afslut.txt", _
        Destination:=Range("$A$1"))
        .Name = "afslut"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlOverwriteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 850
        .TextFileStartRow = 1
        .TextFileParseType = xlFixedWidth
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(2, 1, 2, 2, 1, 1, 1)
        .TextFileFixedColumnWidths = Array(5, 1, 2, 22, 12, 14)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
    ActiveWindow.SmallScroll Down:=15
End Sub
Sub Makro4()
Avatar billede japping Nybegynder
29. februar 2008 - 18:57 #2
Det er selvfølgelig en mulighed, det tænkte jeg ikke lige på. Et rigtig godt alternativ til det jeg egentlig tænkte på :-)

Jeg kunne godt tænke mig at anvende open, get og close. Ved du hvordan man gør det ? Jeg kan nemlig ikke finde syntaksen til det.
Avatar billede familienriis Nybegynder
29. februar 2008 - 19:14 #3
vil du bare åbne en text fil direkte i excel?
Avatar billede familienriis Nybegynder
29. februar 2008 - 19:18 #4
Hvis du vil åbne den samme fil igen og igen kan du bruge en makro som denne
bemærk at du skal ændre lidt i koden, da din fil sikkert ikke er opbygget som min.

Men igen. Start makrooptager og gør det du gerne vil have den til.


Sub åbn()
    ChDir "C:\data"
    Workbooks.OpenText Filename:="C:\data\regnskab.txt", Origin:=xlMSDOS, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=True _
        , Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
        TrailingMinusNumbers:=True
End Sub

Sub luk()
    Windows("regnskab.txt").Activate
    ActiveWorkbook.Close
End Sub
Avatar billede japping Nybegynder
29. februar 2008 - 19:20 #5
Jeg vil gerne åbne tekst-filen i VBA og lægge værdierne i variable.

Noget i retning af:
---------------------
Open "c:\dummy\datafile.txt" For Output As #1
I = 0
Do Until EOF(1)
  I = I + 1
  Line (Output, 1)
  Loop
Close (1)
--------------------

Men jeg kan ikke få det til at virke.
Avatar billede japping Nybegynder
29. februar 2008 - 19:21 #6
Jeg er først tilbage igen om en times tid.
Avatar billede japping Nybegynder
29. februar 2008 - 22:11 #7
Jeg fandt selv en løsning som ser således ud:
-----------START------------
Dim MyString, MyNumber
Open "c:\test.txt" For Input As #1 ' Open file for input.
Do While Not EOF(1) ' Loop until end of file.
Line Input #1, MyString, MyNumber ' Read data into two variables.
Debug.Print MyString, MyNumber ' Print data to the Immediate window.
Loop
Close #1 ' Close file.
-----------STOP------------
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