Avatar billede mr.handstand Novice
27. oktober 2005 - 16:02 Der er 15 kommentarer og
1 løsning

run-time error 1004 ved åbning af txt fil i excel

Kære alle,
hvorfor giver følgende kode en fejl 1004 for 2 ud af 10 separate brugere, når de andre kan eksekvere det uden problemer?

Hver bruger har fået tilsendt en excel-fil, der kan importere txt filer ind i en formular (= excel ark). Systemet er testet i Excel 2003

KODE:

Dim fileToOpen As String
Dim thisWorkbook, importWorkbook As Workbook
...
Set thisWorkbook = ActiveWorkbook
fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")

If fileToOpen = "False" Then
    Exit Sub
End If

Workbooks.OpenText Filename:=fileToOpen, origin:=65001, DataType:=xlDelimited, Semicolon:=True [DENNE LINJE FEJLER]

Set importWorkbook = ActiveWorkbook
...

Den ene bruger får fejlen ved brug af Excel 97, og den anden har fået fejlen på både Excel 2000 og Excel 2003.

VBA koden er skrevet i Excel 2003.

Tekstfilen indeholder helt traditionel csv-data, såsom navn,adr mv. Der er ikke datoinformationer i tekstfilen.

Vores egen fortolkning er, at den allerede har succesfuldt modtaget txt-filen i linjen:

fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")

og derefter fint kan køre de næste 3 linjer, (if-konstruktionen) - derefter fejler den. Dermed tolker vi ikke netværk mv. + selve tekstfilen som årsag til fejlen - men hvad er det så???

Som altid - på forhånd mange tak for alle input og bidrag der kan redde mig.
Avatar billede oyejo Nybegynder
27. oktober 2005 - 16:34 #1
Skal den åpne alle tekstfiler i en folder?
Avatar billede mr.handstand Novice
27. oktober 2005 - 16:35 #2
nej - den skal kun åbne den fil, der udvælges i:
fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")
Avatar billede bak Forsker
27. oktober 2005 - 16:47 #3
Jeg kan umiddelbart komme i tanke om to ting, der kan gå galt her.
origin er her defineret som 65001 (dette kan være xl97 problemet), prøv istedet at skrive origin = xlWindows
eller check at der i vba-editoren under tools/references er flueben i Microsoft office xx object library
Avatar billede bak Forsker
27. oktober 2005 - 16:50 #4
I øvrigt er denne linie ikke smart
Set thisWorkbook = ActiveWorkbook
idet ThisWorkbook er et vba-ord der er reserveret
Avatar billede mr.handstand Novice
27. oktober 2005 - 16:56 #5
tak for kommentarene - vi vil straks afprøve de nævnte hints. 65001 var medtaget for at kunne håndtere DK-tegn, gør xlWindows det samme, eller har vi misforstået origin...

Brug af reserverede ord er selvfølgelig ikke smart - det skal ikke gentage sig :o)
Avatar billede oyejo Nybegynder
27. oktober 2005 - 16:57 #6
Jeg er ikke så hård til dette, men jeg hadde problemer med dette.
Måten å angi en sti til en folder

"\folder\subfolder\" denne funger på alle (tror jeg)
"/folder/subfolder/" denne fungerer ikke på w2000

du kan også benytte ("Scripting.FileSystemObject"), men
men tror ikke det går ikke på w97


Set fso = CreateObject("Scripting.FileSystemObject")
Set fsoFld = fso.GetFolder(sFolder)
Set fsoFil = fsoFld.Files(sTxtFile)
 
Workbooks.OpenText Filename:=sFolder & sTxtFile, origin:=xlWindows, _
                              DataType:=xlDelimited, Semicolon:=True

som sagt jeg er ingen ekspert på dette, har kun hatt lignende problemer.
Avatar billede oyejo Nybegynder
27. oktober 2005 - 16:57 #7
obs! du har fått svar fra bak, Glem mitt svar ;-)
Avatar billede mr.handstand Novice
27. oktober 2005 - 16:59 #8
ingen problemer oeyjo - alle svar er velkomne!
Avatar billede bak Forsker
27. oktober 2005 - 17:01 #9
Kommer an på om det er en dos fil (eller lignende) så kan du bruge origin = xlmsdos
Avatar billede mr.handstand Novice
27. oktober 2005 - 17:25 #10
Vi har nu forsøgt efter bedste evne at:
* sikre at flueben er sat til til Microsoft office xx object library
* sikre at security level er ens på maskinerne
* rettet ThisWorkbook til AktuelWorkbook
* ændret 65001 til xlWindows

- INGENTING hjælper - stadig samme debug error fejl på samme linje kode:

Workbooks.OpenText Filename:=fileToOpen, origin:=xlWindows, DataType:=xlDelimited, Semicolon:=True

Er der andre forslag - Denne specifikke bruger kører windows 2000 og Excel 2000
What to do?
Avatar billede oyejo Nybegynder
27. oktober 2005 - 17:33 #11
Vet ikke om det betyr noe, men... er det space i txt_filnavnet?
Avatar billede mr.handstand Novice
27. oktober 2005 - 17:37 #12
Ny udvikling - nu virker det principielt, når vi udskifter 65001 med xlWindows.
Måske var det en fejl-40 da jeg før sagde at testen med xlWindows ikke lykkedes - for det gør den nu.

Desværre mister vi de danske specialtegn ved dette skift til origin:=xlWindows- kan vi (uden alt for stor indsats) undgå at miste de danske specialtegn?
Avatar billede bak Forsker
27. oktober 2005 - 19:52 #13
Prøv med
Workbooks.OpenText Filename:=fileToOpen, origin:=xlmsdos, DataType:=xlDelimited, Semicolon:=True
Avatar billede bak Forsker
27. oktober 2005 - 19:57 #14
Har lige testet på en xl97 og det er korrekt at den ikke vil æde origin = 65001, men kører fint med origin = xlMSDOS
Avatar billede mr.handstand Novice
18. marts 2006 - 19:13 #15
hej bak - lad os få lukket ovenstående. Dine input hjalp os videre, derfor fortjener du pointene - smider du et svar?
Avatar billede bak Forsker
20. marts 2006 - 22:52 #16
ok :-)
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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