Avatar billede riisvba Nybegynder
13. august 2007 - 14:11 Der er 13 kommentarer

Fejl ved åbning af excelark i VBA

Jeg har lavet en CommandBarButton, som ved klik åbner en .xla fil, og kører

Sub qsp()

Dim i As Integer
For i = 1 To Workbooks.Count
  If Workbooks(i).Name = "Test.xls" Then
      Exit Sub
  End If
Next i
Workbooks.Open ("Test.xls")

End Sub

Arket Test.xla indeholder en WorkBooks_Open. Denne fil starter også og udfører et par indledende ting. Efter dette, afspilles en lille Wav-fil, stadig i samme makro. Efter denne er spillet, går den direkte over i Sub qsp() igen, og negliserer WorkBooks.count, og udfører
Workbooks.Open ("Test.xls"), hvilket får Excel til at crashe. Man kan IKKE flytte curseren og
Workbooks(i).Name er netop = “Test.xls” på begge sider af lighedstegnet. Kan nogen være behjælpelig, og måske se, hvor problemet er? På forhånd tak. Venlig hilsen TORBEN
Avatar billede gider_ikke_mere Nybegynder
13. august 2007 - 14:18 #1
Du kunne jo checke for om Test.xls er åben, og dermed springe over åbningen hvis den er det.
Avatar billede riisvba Nybegynder
13. august 2007 - 14:30 #2
Har du en bedre måde at teste på om WorkBooks er åben? Det er jo her problemet øjensynlig er.
Avatar billede gider_ikke_mere Nybegynder
13. august 2007 - 14:33 #3
Hvad hvis du bruger denne?

Sub qsp()
Dim i As Integer
If ActiveWorkbook.Name = "Mappe 1.xls" Then 'eller hvad dit ark hedder
    For i = 1 To Workbooks.Count
        If Workbooks(i).Name = "Test.xls" Then
        Exit Sub
    End If
    Next i
End If
Workbooks.Open ("Test.xls")
End Sub

Så køres qsp() kun en gang.
Avatar billede gider_ikke_mere Nybegynder
13. august 2007 - 14:35 #4
eller...

Sub qsp()
Dim i As Integer
If ActiveWorkbook.Name <> "Test.xls" Then 'eller hvad dit ark hedder
    For i = 1 To Workbooks.Count
        If Workbooks(i).Name = "Test.xls" Then
        Exit Sub
    End If
    Next i
End If
Workbooks.Open ("Test.xls")
End Sub
Avatar billede riisvba Nybegynder
13. august 2007 - 14:53 #5
Der hvor mit problem reelt er, jeg ikke forstår, hvorfor qsp() kører to gange, når mit ark allerede een gang er blevet åbnet. Og at makroen ryger direkte ned 2. gang den køres på Workbooks.Open ("Test") og således intet tester. Men jeg prøver dine to forslag i aften. Da jeg ikke kan fra arbejde.
Avatar billede gider_ikke_mere Nybegynder
13. august 2007 - 15:13 #6
.xla filen bliver vel kørt hver gang et Excel ark åbnes. Derfor test af arknavn som foreslået 13/08-2007 14:35:29
Avatar billede riisvba Nybegynder
13. august 2007 - 18:23 #7
Man kan ikke bruge ActiveWorkbook.Name, når der ikke er åbnet et ark. Det er der ikke på det tidspunkt, da den kører første gang. Qsp skal KUN åbne et ark. Har ændret koden til ThisWorkbook.Name og den kører. Men samme fejl kommer, som oprindelig. NÅR arket her Test.xls er åbnet og Workbooks_Open kører, springer makroen på et tidspunkt pludselig tilbage i Sub qsp(). Det burde den jo absolut ikke. Den kører IKKE hele makroen igen, men går direkte ned til, Workbooks.Open ("Test.xls"). Når den tricker, crasher Excel. Har forsøgt med begge dine makroer, men der sker præcis det samme, som med min egen. TAK for respons. Måske er det et Microsoft problem. Det er jo før set, at de har nogle huller.
Avatar billede gider_ikke_mere Nybegynder
13. august 2007 - 18:59 #8
Jeg har prøvet at simulere koden som du bruger den, og får ingen fejl. Bortset fra at jeg skulle skrive den fulde sti ved Workbooks.Open.

Du er nok nødt til at debugge dig gennem koden, for at se hvor det går galt.
Avatar billede riisvba Nybegynder
13. august 2007 - 20:30 #9
Tak for din ihærdighed. Problemet er, at den eneste mulighed for et debug sker, lige efter .Wav filen er spillet. Og der er den allerede inde i, Workbooks.Open ("Test.xls") i selve xla'et. Den ignorerer også On Error Resume Next og lignende der. Fejlen får jeg HVER gang. Så måske har jeg ikke udtrykt mig korrekt, eller det er bare en fejl fra Microsoft, som jeg foreslog. Men tak for dine forsøg og interesse. Det er meget værdsat.
Avatar billede riisvba Nybegynder
13. august 2007 - 21:19 #10
Vender lige tilbage i morgen. Hvis jeg har fundet løsningen, forstår jeg godt, du ikke har kunne genskabe mit problem. Endnu engang tak for din deltagelse i mit problem. Venlig hilsen TORBEN
Avatar billede gider_ikke_mere Nybegynder
15. august 2007 - 17:52 #11
Er du kommet videre?
Avatar billede gider_ikke_mere Nybegynder
11. november 2007 - 20:24 #12
Respons!
Avatar billede riisvba Nybegynder
24. august 2010 - 14:38 #13
Beklager jeg aldrig fik lukket dette spørgsmål!!
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