Vraag : Waarom vergt deze code het rebooten?

Ik heb een stuk van code vastgemaakt dat werkt, vooral aangezien ik het door zijn opeenvolging stap.  Nochtans, wanneer ik de looppasknoop druk, zal het voor een paar meer lijnen blijven werken, dan einde.  Zodra ik het manueel begin, zal de code voor een paar meer lijnen aan zijn blijven werken.  Het is verwarrend in verband met waarom het enkel zal ophouden.  Ja, zou With Sheets kunnen worden gecombineerd, maar zijn recent en ik verliet het enkel zoals is.  Nochtans, zou ik niet denken die misfire.

Would zou veroorzaken iedereen een antwoord heeft?

Cook
" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
expliciete Option Sub DelUnNeeded () Schemerige rng als Waaier, lPos als Waaier Schemerige celle als Waaier, wks als Aantekenvel Schemerige I zoals lang, FinalRow als Waaier Schemerig c zoals lang Met Bladen („PIDs“) Reeks rng = Waaier (. Cellen (4, „H“). Cellen (. Rows.Count, „H“). Eind (xlUp)) Eind met i = 4 Op Fout hervat daarna Met Bladen („PIDs“) Voor Elke celle in rng Als Cellen (I, 8) de Rijen = van de „LEGE POSITIE“ toen (I). Schrap Plaats lPos = Cellen (I, 11) Indien Weggegaan (lPos, 11) = „115528“ toen Rijen (I). Schrap Indien Weggegaan (lPos, 11) = „124957“ toen Rijen (I). Schrap i = I + 1 Daarna Eind met Sub van het eind

Antwoord : Waarom vergt deze code het rebooten?

Oops miste ik de duidelijke fout - zie verder:

Indien Weggegaan (. Cellen (I, 11), 11) = „115528“ toen. Rijen (I) .EntireRow.Delete
Indien Weggegaan (. Cellen (I, 11), 11) = „124957“ toen. Rijen (I) .EntireRow.Delete

zou moeten geweest zijn:

Indien Weggegaan (. Cellen (I, 11), 6) = „115528“ toen. Rijen (I) .EntireRow.Delete
Indien Weggegaan (. Cellen (I, 11), 6) = „124957“ toen. Rijen (I) .EntireRow.Delete
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
Sub DelUnNeeded ()
Schemerige FinalRow zoals lang, I zoals lang, lPos zoals lang

Met Bladen („PIDs“)
    FinalRow =. Cellen (. Rows.Count, „H“). Eind (xlUp). Rij
    Voor I = lastrow aan 4 Stap -1
        Als UCase (. Cellen (I, 8)) = „LEGE POSITIE“ toen. Rijen (I) .EntireRow.Delete
        Indien Weggegaan (. Cellen (I, 11), 6) = „115528“ toen. Rijen (I) .EntireRow.Delete
        Indien Weggegaan (. Cellen (I, 11), 6) = „124957“ toen. Rijen (I) .EntireRow.Delete
    Volgende I
Eind met

Sub van het eind
Andere oplossingen  
 
programming4us programming4us