Køre afviklingen af VBA-kode bare videre...?
Hej alleJeg bruger WBA i Word 97...
I nedenstående kode har jeg et problem med at værdien i variablen \"ICaseNumber\" bliver forskellig hvis jeg på den ene side afvikler VBA-koden på normal måde, via play-knappen., eller hvis jeg på den anden side single stepper mig igennem via F8. Koden virker nemlig korrekt når jeg single stepper mig igennem den i modsætning til hvis jeg benytter play-knappen.
Den fil som undersøges, via nedenstående kode, indeholder en tabel med nogle rækker og nogle kolonner. Filen ligger på et forholdsvis langsomt netværk - kan det have noget med sagen at gøre samtidig med at jeg benytter funktionen \"Selection.InsertBreak Type:=wdPageBreak\"? Kan det ske at afviklingen af VBA-koden bare køre videre inden alle faktuelle oplysninger fra filen på det langsomme netværk er nået frem?
Er der noget jeg kan slå til/fra for at afhjælpe problemet?
Et tillægsspørgsmål: Hvordan indsætter man et delay på f.eks. 2 sekunder - koden skal helst svare nogenlunde til delay(2000) ell., som det kendes fra andre programmeringssprog, således at det er uafhængig af processorhastighed på den pågældende maskine det afvikles på...
Med venlig hilsen
Bjarke Korsgaard
FieldSagsbehandlerOld = \"\"
FieldForundersoegelseOld = \"\"
ICaseNumber = 0
LastLine = False
FirstTimeDoWhile = True
Do While LastLine = False
Selection.MoveRight Unit:=wdCell, Count:=6, Extend:=wdMove
If Left(UCase(Selection.Text), 1) >= \"A\" And Left(UCase(Selection.Text), 1) <= \"Z\" Then
FieldSagsbehandler = UCase(Left(Selection.Text, 3))
If FieldSagsbehandler <> FieldSagsbehandlerOld Then
If FirstTimeDoWhile = True Then
FirstTimeDoWhile = False
Else
Selection.InsertBreak Type:=wdPageBreak
If ICaseNumber <= INumberOfCases Then
\'ICaseNumber = ICaseNumber + 1
Selection.MoveDown Unit:=wdLine, Count:=1 \'én ekstra pga. \"InsertBreak\"
Selection.HomeKey Unit:=wdRow
End If
End If
End If
Else
Selection.MoveLeft Unit:=wdCell, Count:=1, Extend:=wdMove
If Left(UCase(Selection.Text), 1) >= \"A\" And Left(UCase(Selection.Text), 1) <= \"Z\" Then
FieldForundersoegelse = UCase(Left(Selection.Text, 3))
If (FieldForundersoegelse <> FieldForundersoegelseOld) Then
Selection.InsertBreak Type:=wdPageBreak
If ICaseNumber <= INumberOfCases Then
\'ICaseNumber = ICaseNumber + 1
Selection.MoveDown Unit:=wdLine, Count:=1 \'én ekstra pga. \"InsertBreak\"
Selection.HomeKey Unit:=wdRow
End If
End If
Else
MsgBox \"Der er indtastet noget forkert i kolonnen \'Sagsbehandler\' eller \'Forundersøgelse\'...\" + Chr(13) + \"Ret venligst fejlen og kør makroen igen...\", vbOKOnly + vbCritical, \" Fejl!\"
End If
End If
If ICaseNumber < INumberOfCases Then
Selection.HomeKey Unit:=wdRow
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
ICaseNumber = ICaseNumber + 1
End If
If ICaseNumber >= INumberOfCases Then
LastLine = True
End If
FieldSagsbehandlerOld = FieldSagsbehandler
FieldForundersoegelseOld = FieldForundersoegelse
Loop
