/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
åbning af tekstfil i excel vha. VBA
Fra : Søren Thaaning Peder~


Dato : 11-06-01 17:10

Jeg har et problem med en tekstfil, som skal åbnes i excel og senere laves
databehandling på. Jeg har i excel optaget en kode vha. "indspil makro", som
gør nøjagtig det samme som hvis jeg manuelt åbner filen i excel. Mit problem
er at tekstfilen benytter kommaer som decimaltegn, men under åbningen bliver
alle kommaerne af en aller anden grund konverteret til tusindtalseparatorer
og mine kommatal bliver i stedet meget store tal. Jeg kan ikke forstå at
dette sker for når jeg manuelt gør samme procedure så er der ikke noget
problem.

Jeg benytter nedenstående kald til at åbne tekstfilen, men er der nogen som
ved havd man mere skal skrive for at excel ikke konverterer alle kommaer til
tusindtalsseparator ??

************************
Workbooks.OpenText fil _
, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, FieldInfo:=Array(1,
1)
************************

Manuelt åbning af filen giver nedenstående:

Date Time Value Status Value
Status
37023 0,958333333 14,017151 #2000 62,822352 #2000
37023 0,958564815 14,181951 #2000 62,85287 #2000
37023 0,958796296 14,548173 #2000 63,035981 #2000
37023 0,959027778 14,969329 #2000 63,035981 #2000
37023 0,959259259 14,49324 #2000 62,883389 #2000
37023 0,959490741 13,760796 #2000 62,822352 #2000
37023 0,959722222 13,376263 #2000 62,700278 #2000
37023 0,959953704 12,900174 #2000 62,547685 #2000
37023 0,960185185 12,533952 #2000 62,578204 #2000
37023 0,960416667 12,717063 #2000 62,547685 #2000
37023 0,960648148 12,222663 #2000 62,395093 #2000

Automatisk åbning af filen giver nedenstående:

Date Time Value Status Value
Status
37023 0,958333333 14.017.151 #2000 62.822.352 #2000
37023 0,958564815 14.181.951 #2000 62.852.870 #2000
37023 0,958796296 14.548.173 #2000 63.035.981 #2000
37023 0,959027778 14.969.329 #2000 63.035.981 #2000
37023 0,959259259 14.493.240 #2000 62.883.389 #2000
37023 0,959490741 13.760.796 #2000 62.822.352 #2000
37023 0,959722222 13.376.263 #2000 62.700.278 #2000
37023 0,959953704 12.900.174 #2000 62.547.685 #2000
37023 0,960185185 12.533.952 #2000 62.578.204 #2000
37023 0,960416667 12.717.063 #2000 62.547.685 #2000
37023 0,960648148 12.222.663 #2000 62.395.093 #2000
37023 0,960879630 11.801.508 #2000 62.456.130 #2000

På forhånd tak

Søren



 
 
Harald Staff (11-06-2001)
Kommentar
Fra : Harald Staff


Dato : 11-06-01 19:27

Søren

Det der kan du give op... Excel tenker skandinavisk, VBA tenker amerikansk.
Og de blir aldri enige om hvilke nummerstandard som gjelder, hvorvidt det er
, eller . som er decimalseparator etc etc... "Manuelt" er rimeligvis kun
skandinavisk, så der er ingen konflikter.

Se om du får bedre resultater med koden på
http://www.cpearson.com/excel/imptext.htm. Håper det...

Beste hilsen Harald


"Søren Thaaning Pedersen" <soren_p@vip.cybercity.dk> wrote in message
news:9g2qnf$15h5$1@news.cybercity.dk...
> Jeg har et problem med en tekstfil, som skal åbnes i excel og senere laves
> databehandling på. Jeg har i excel optaget en kode vha. "indspil makro",
som
> gør nøjagtig det samme som hvis jeg manuelt åbner filen i excel. Mit
problem
> er at tekstfilen benytter kommaer som decimaltegn, men under åbningen
bliver
> alle kommaerne af en aller anden grund konverteret til
tusindtalseparatorer
> og mine kommatal bliver i stedet meget store tal. Jeg kan ikke forstå at
> dette sker for når jeg manuelt gør samme procedure så er der ikke noget
> problem.
>
> Jeg benytter nedenstående kald til at åbne tekstfilen, men er der nogen
som
> ved havd man mere skal skrive for at excel ikke konverterer alle kommaer
til
> tusindtalsseparator ??
>
> ************************
> Workbooks.OpenText fil _
> , Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
> :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True,
FieldInfo:=Array(1,
> 1)
> ************************
>
> Manuelt åbning af filen giver nedenstående:
>
> Date Time Value Status Value
> Status
> 37023 0,958333333 14,017151 #2000 62,822352 #2000
> 37023 0,958564815 14,181951 #2000 62,85287 #2000
> 37023 0,958796296 14,548173 #2000 63,035981 #2000
> 37023 0,959027778 14,969329 #2000 63,035981 #2000
> 37023 0,959259259 14,49324 #2000 62,883389 #2000
> 37023 0,959490741 13,760796 #2000 62,822352 #2000
> 37023 0,959722222 13,376263 #2000 62,700278 #2000
> 37023 0,959953704 12,900174 #2000 62,547685 #2000
> 37023 0,960185185 12,533952 #2000 62,578204 #2000
> 37023 0,960416667 12,717063 #2000 62,547685 #2000
> 37023 0,960648148 12,222663 #2000 62,395093 #2000
>
> Automatisk åbning af filen giver nedenstående:
>
> Date Time Value Status Value
> Status
> 37023 0,958333333 14.017.151 #2000 62.822.352 #2000
> 37023 0,958564815 14.181.951 #2000 62.852.870 #2000
> 37023 0,958796296 14.548.173 #2000 63.035.981 #2000
> 37023 0,959027778 14.969.329 #2000 63.035.981 #2000
> 37023 0,959259259 14.493.240 #2000 62.883.389 #2000
> 37023 0,959490741 13.760.796 #2000 62.822.352 #2000
> 37023 0,959722222 13.376.263 #2000 62.700.278 #2000
> 37023 0,959953704 12.900.174 #2000 62.547.685 #2000
> 37023 0,960185185 12.533.952 #2000 62.578.204 #2000
> 37023 0,960416667 12.717.063 #2000 62.547.685 #2000
> 37023 0,960648148 12.222.663 #2000 62.395.093 #2000
> 37023 0,960879630 11.801.508 #2000 62.456.130 #2000
>
> På forhånd tak
>
> Søren
>
>



Lars Jakobsen (12-06-2001)
Kommentar
Fra : Lars Jakobsen


Dato : 12-06-01 07:04

Søren,
Jeg er helt enig med Harald - giv op med det samme. Jeg har forgæves forsøgt
i årevis (såvidt jeg husker også med CPearson's kode). Det nærmeste gode
forsøg jeg har gjort (det er vidst også sådan CPearson's kode er) gik ud på
at åbne tekst filen med Open "filename.txt" For Input Access Read As #1 og
så læse samt evaluere hvert tegn (og vidst nok i den forbindelse konvertere
komma og punktum tegn, som det passede mig), men det er en lidt omstændig
proces som ikke virkede 100%.

Det eneste der virker hver gang for mig er at sætte pc'en op med amerikansk
standard.

Med venlig hilsen
Lars Jakobsen

"Harald Staff" <harald.staff@eunet.no> skrev i en meddelelse
news:9g32g5$fsq$1@oslo-nntp.eunet.no...
> Søren
>
> Det der kan du give op... Excel tenker skandinavisk, VBA tenker
amerikansk.
> Og de blir aldri enige om hvilke nummerstandard som gjelder, hvorvidt det
er
> , eller . som er decimalseparator etc etc... <---clip(lj)

> "Søren Thaaning Pedersen" <soren_p@vip.cybercity.dk> wrote in message
> news:9g2qnf$15h5$1@news.cybercity.dk...
> > Jeg har et problem med en tekstfil, som skal åbnes i excel og senere
laves
> > databehandling på. Jeg har i excel optaget en kode vha. "indspil makro",
> som
> > gør nøjagtig det samme som hvis jeg manuelt åbner filen i excel. Mit
> problem
> > er at tekstfilen benytter kommaer som decimaltegn, men under åbningen
> bliver
> > alle kommaerne af en aller anden grund konverteret til
> tusindtalseparatorer
> > og mine kommatal bliver i stedet meget store tal. <--clip(lj)



Harald Staff (12-06-2001)
Kommentar
Fra : Harald Staff


Dato : 12-06-01 09:37

Søren

Om du fordyper deg i Chip's kode, så kan du enkeltvis erstatte komma med
punktum underveis enkeltvis. Da skal du kunne få rigtig resultat:

Sub Test()
Dim LestString As String
LestString = "0,958333333"
MsgBox Val(Replace(LestString, ",", "."))
End Sub

Det er et stykke arbeid, men du har i alle fall kontroll på denne måte.

Beste hilsen Harald

Harald Staff <harald.staff@eunet.no> skrev i
news:9g32g5$fsq$1@oslo-nntp.eunet.no...
> Søren
>
> Det der kan du give op... Excel tenker skandinavisk, VBA tenker
amerikansk.
> Og de blir aldri enige om hvilke nummerstandard som gjelder, hvorvidt det
er
> , eller . som er decimalseparator etc etc... "Manuelt" er rimeligvis kun
> skandinavisk, så der er ingen konflikter.
>
> Se om du får bedre resultater med koden på
> http://www.cpearson.com/excel/imptext.htm. Håper det...
>
> Beste hilsen Harald
>
>
> "Søren Thaaning Pedersen" <soren_p@vip.cybercity.dk> wrote in message
> news:9g2qnf$15h5$1@news.cybercity.dk...
> > Jeg har et problem med en tekstfil, som skal åbnes i excel og senere
laves
> > databehandling på. Jeg har i excel optaget en kode vha. "indspil makro",
> som
> > gør nøjagtig det samme som hvis jeg manuelt åbner filen i excel. Mit
> problem
> > er at tekstfilen benytter kommaer som decimaltegn, men under åbningen
> bliver
> > alle kommaerne af en aller anden grund konverteret til
> tusindtalseparatorer
> > og mine kommatal bliver i stedet meget store tal. Jeg kan ikke forstå at
> > dette sker for når jeg manuelt gør samme procedure så er der ikke noget
> > problem.
> >
> > Jeg benytter nedenstående kald til at åbne tekstfilen, men er der nogen
> som
> > ved havd man mere skal skrive for at excel ikke konverterer alle kommaer
> til
> > tusindtalsseparator ??
> >
> > ************************
> > Workbooks.OpenText fil _
> > , Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
> > :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True,
> FieldInfo:=Array(1,
> > 1)
> > ************************
> >
> > Manuelt åbning af filen giver nedenstående:
> >
> > Date Time Value Status Value
> > Status
> > 37023 0,958333333 14,017151 #2000 62,822352 #2000
> > 37023 0,958564815 14,181951 #2000 62,85287 #2000
> > 37023 0,958796296 14,548173 #2000 63,035981 #2000
> > 37023 0,959027778 14,969329 #2000 63,035981 #2000
> > 37023 0,959259259 14,49324 #2000 62,883389 #2000
> > 37023 0,959490741 13,760796 #2000 62,822352 #2000
> > 37023 0,959722222 13,376263 #2000 62,700278 #2000
> > 37023 0,959953704 12,900174 #2000 62,547685 #2000
> > 37023 0,960185185 12,533952 #2000 62,578204 #2000
> > 37023 0,960416667 12,717063 #2000 62,547685 #2000
> > 37023 0,960648148 12,222663 #2000 62,395093 #2000
> >
> > Automatisk åbning af filen giver nedenstående:
> >
> > Date Time Value Status Value
> > Status
> > 37023 0,958333333 14.017.151 #2000 62.822.352 #2000
> > 37023 0,958564815 14.181.951 #2000 62.852.870 #2000
> > 37023 0,958796296 14.548.173 #2000 63.035.981 #2000
> > 37023 0,959027778 14.969.329 #2000 63.035.981 #2000
> > 37023 0,959259259 14.493.240 #2000 62.883.389 #2000
> > 37023 0,959490741 13.760.796 #2000 62.822.352 #2000
> > 37023 0,959722222 13.376.263 #2000 62.700.278 #2000
> > 37023 0,959953704 12.900.174 #2000 62.547.685 #2000
> > 37023 0,960185185 12.533.952 #2000 62.578.204 #2000
> > 37023 0,960416667 12.717.063 #2000 62.547.685 #2000
> > 37023 0,960648148 12.222.663 #2000 62.395.093 #2000
> > 37023 0,960879630 11.801.508 #2000 62.456.130 #2000
> >
> > På forhånd tak
> >
> > Søren
> >
> >
>
>



Søren Thaaning Peder~ (12-06-2001)
Kommentar
Fra : Søren Thaaning Peder~


Dato : 12-06-01 14:07

Hvad vil I istedet foreslå at jeg gør ved poblemet ?

Søren
Harald Staff skrev i meddelelsen <9g32g5$fsq$1@oslo-nntp.eunet.no>...
>Søren
>
>Det der kan du give op... Excel tenker skandinavisk, VBA tenker amerikansk.
>Og de blir aldri enige om hvilke nummerstandard som gjelder, hvorvidt det
er
>, eller . som er decimalseparator etc etc... "Manuelt" er rimeligvis kun
>skandinavisk, så der er ingen konflikter.
>
>Se om du får bedre resultater med koden på
>http://www.cpearson.com/excel/imptext.htm. Håper det...
>
>Beste hilsen Harald
>
>
>"Søren Thaaning Pedersen" <soren_p@vip.cybercity.dk> wrote in message
>news:9g2qnf$15h5$1@news.cybercity.dk...
>> Jeg har et problem med en tekstfil, som skal åbnes i excel og senere
laves
>> databehandling på. Jeg har i excel optaget en kode vha. "indspil makro",
>som
>> gør nøjagtig det samme som hvis jeg manuelt åbner filen i excel. Mit
>problem
>> er at tekstfilen benytter kommaer som decimaltegn, men under åbningen
>bliver
>> alle kommaerne af en aller anden grund konverteret til
>tusindtalseparatorer
>> og mine kommatal bliver i stedet meget store tal. Jeg kan ikke forstå at
>> dette sker for når jeg manuelt gør samme procedure så er der ikke noget
>> problem.
>>
>> Jeg benytter nedenstående kald til at åbne tekstfilen, men er der nogen
>som
>> ved havd man mere skal skrive for at excel ikke konverterer alle kommaer
>til
>> tusindtalsseparator ??
>>
>> ************************
>> Workbooks.OpenText fil _
>> , Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
>> :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True,
>FieldInfo:=Array(1,
>> 1)
>> ************************
>>
>> Manuelt åbning af filen giver nedenstående:
>>
>> Date Time Value Status Value
>> Status
>> 37023 0,958333333 14,017151 #2000 62,822352 #2000
>> 37023 0,958564815 14,181951 #2000 62,85287 #2000
>> 37023 0,958796296 14,548173 #2000 63,035981 #2000
>> 37023 0,959027778 14,969329 #2000 63,035981 #2000
>> 37023 0,959259259 14,49324 #2000 62,883389 #2000
>> 37023 0,959490741 13,760796 #2000 62,822352 #2000
>> 37023 0,959722222 13,376263 #2000 62,700278 #2000
>> 37023 0,959953704 12,900174 #2000 62,547685 #2000
>> 37023 0,960185185 12,533952 #2000 62,578204 #2000
>> 37023 0,960416667 12,717063 #2000 62,547685 #2000
>> 37023 0,960648148 12,222663 #2000 62,395093 #2000
>>
>> Automatisk åbning af filen giver nedenstående:
>>
>> Date Time Value Status Value
>> Status
>> 37023 0,958333333 14.017.151 #2000 62.822.352 #2000
>> 37023 0,958564815 14.181.951 #2000 62.852.870 #2000
>> 37023 0,958796296 14.548.173 #2000 63.035.981 #2000
>> 37023 0,959027778 14.969.329 #2000 63.035.981 #2000
>> 37023 0,959259259 14.493.240 #2000 62.883.389 #2000
>> 37023 0,959490741 13.760.796 #2000 62.822.352 #2000
>> 37023 0,959722222 13.376.263 #2000 62.700.278 #2000
>> 37023 0,959953704 12.900.174 #2000 62.547.685 #2000
>> 37023 0,960185185 12.533.952 #2000 62.578.204 #2000
>> 37023 0,960416667 12.717.063 #2000 62.547.685 #2000
>> 37023 0,960648148 12.222.663 #2000 62.395.093 #2000
>> 37023 0,960879630 11.801.508 #2000 62.456.130 #2000
>>
>> På forhånd tak
>>
>> Søren
>>
>>
>
>



Harald Staff (12-06-2001)
Kommentar
Fra : Harald Staff


Dato : 12-06-01 14:38

Du leste vel ikke mitt forrige svar med spesiell interresse... Vel, gjør
følnede endring i Chip's kode, så den leser

TempVal = Mid(WholeLine, Pos, NextPos - Pos)
If IsNumeric(TempVal) Then
Cells(RowNdx, ColNdx).Value = Val(Replace(TempVal, ",", "."))
Else
Cells(RowNdx, ColNdx).Value = TempVal
End If
Pos = NextPos + 1

HTH. Beste hilsen Harald

Søren Thaaning Pedersen <soren_p@vip.cybercity.dk> skrev i
news:9g54di$1d0a$1@news.cybercity.dk...
> Hvad vil I istedet foreslå at jeg gør ved poblemet ?
>
> Søren




bnj (13-06-2001)
Kommentar
Fra : bnj


Dato : 13-06-01 13:08

Du kan indlæse filen linie for linie. Det er ikke så langsomt hvis men
benytter TextToColumns.

for eksempel:
'***************************************************************
Private Sub CommandButton1_Click()
'** Husk at tilføje Microsoft Scripting Runtime i Tools|References!!!
Dim fso As New FileSystemObject
Dim TextFile As TextStream
On Error GoTo OpenFileError
'** fil må du have defineret et eller andet sted!
Set TextFile = fso.OpenTextFile(fil, ForReading)
On Error GoTo 0
Dim CellNo As Integer
CellNo = 1
Dim FileLine As String
With TextFile
Do While Not .AtEndOfStream
FileLine = .ReadLine
Dim Pos As Integer
Pos = 1
Do
Pos = InStr(Pos, FileLine, ".")
If Pos > 0 Then Mid(FileLine, Pos) = ","
Loop Until Pos <= 1
' Perform any filtering.
Cells(CellNo, 1) = FileLine
CellNo = CellNo + 1
Loop
End With
Set fso = Nothing
Dim RangeStr As String
RangeStr = "A1:A" & CStr(CellNo - 1)
Application.DisplayAlerts = False

'** Se andre options for TextToColumns i Excel Help den ligner OpenText
meget!
Range(RangeStr).TextToColumns Tab:=True, DecimalSeparator:=","
Columns("A:I").AutoFit
Application.DisplayAlerts = True
Exit Sub
OpenFileError:
MsgBox "Fejl!" & vbCrLf & Err.Description, vbCritical
End Sub

'***************************************************************


"Søren Thaaning Pedersen" <soren_p@vip.cybercity.dk> wrote in message
news:9g2qnf$15h5$1@news.cybercity.dk...
> Jeg har et problem med en tekstfil, som skal åbnes i excel og senere laves
> databehandling på. Jeg har i excel optaget en kode vha. "indspil makro",
som
> gør nøjagtig det samme som hvis jeg manuelt åbner filen i excel. Mit
problem
> er at tekstfilen benytter kommaer som decimaltegn, men under åbningen
bliver
> alle kommaerne af en aller anden grund konverteret til
tusindtalseparatorer
> og mine kommatal bliver i stedet meget store tal. Jeg kan ikke forstå at
> dette sker for når jeg manuelt gør samme procedure så er der ikke noget
> problem.
>
> Jeg benytter nedenstående kald til at åbne tekstfilen, men er der nogen
som
> ved havd man mere skal skrive for at excel ikke konverterer alle kommaer
til
> tusindtalsseparator ??
>
> ************************
> Workbooks.OpenText fil _
> , Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
> :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True,
FieldInfo:=Array(1,
> 1)
> ************************
>
> Manuelt åbning af filen giver nedenstående:
>
> Date Time Value Status Value
> Status
> 37023 0,958333333 14,017151 #2000 62,822352 #2000
> 37023 0,958564815 14,181951 #2000 62,85287 #2000
> 37023 0,958796296 14,548173 #2000 63,035981 #2000
> 37023 0,959027778 14,969329 #2000 63,035981 #2000
> 37023 0,959259259 14,49324 #2000 62,883389 #2000
> 37023 0,959490741 13,760796 #2000 62,822352 #2000
> 37023 0,959722222 13,376263 #2000 62,700278 #2000
> 37023 0,959953704 12,900174 #2000 62,547685 #2000
> 37023 0,960185185 12,533952 #2000 62,578204 #2000
> 37023 0,960416667 12,717063 #2000 62,547685 #2000
> 37023 0,960648148 12,222663 #2000 62,395093 #2000
>
> Automatisk åbning af filen giver nedenstående:
>
> Date Time Value Status Value
> Status
> 37023 0,958333333 14.017.151 #2000 62.822.352 #2000
> 37023 0,958564815 14.181.951 #2000 62.852.870 #2000
> 37023 0,958796296 14.548.173 #2000 63.035.981 #2000
> 37023 0,959027778 14.969.329 #2000 63.035.981 #2000
> 37023 0,959259259 14.493.240 #2000 62.883.389 #2000
> 37023 0,959490741 13.760.796 #2000 62.822.352 #2000
> 37023 0,959722222 13.376.263 #2000 62.700.278 #2000
> 37023 0,959953704 12.900.174 #2000 62.547.685 #2000
> 37023 0,960185185 12.533.952 #2000 62.578.204 #2000
> 37023 0,960416667 12.717.063 #2000 62.547.685 #2000
> 37023 0,960648148 12.222.663 #2000 62.395.093 #2000
> 37023 0,960879630 11.801.508 #2000 62.456.130 #2000
>
> På forhånd tak
>
> Søren
>
>



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste