PDA

View Full Version : [VBA/Excel '07] Crash con For Each... + .End(xlDown)


leomac
22-10-2009, 12:50
Salve a tutti,
utilizzando sempre più spesso la porzione di codice:

For each Oggetto in Range(Range("A1"), Range("A1").End (xlDown))


mi trovo a mandare in palla il sistema quando nella riga dove esegue la ricerca, la sola cella piena è una ed è la prima (cioè la A1 in questo caso). Ripetendo, da quanto ho capito, il cilco in continuo. C'è qualche modo per evitare il crash??

Grazie

MarcoGG
22-10-2009, 14:06
Salve a tutti,
utilizzando sempre più spesso la porzione di codice:

For each Oggetto in Range(Range("A1"), Range("A1").End (xlDown))


mi trovo a mandare in palla il sistema quando nella riga dove esegue la ricerca, la sola cella piena è una ed è la prima (cioè la A1 in questo caso). Ripetendo, da quanto ho capito, il cilco in continuo. C'è qualche modo per evitare il crash??

Grazie

E' normale. Non è che "ripete il ciclo in continuo", il fatto è che Range("A1").End(xlDown) coincide con l'ultima cella disponibile sulla Colonna A, basta fare :
MsgBox Range("A1").End(xlDown).Address
per rendersene conto.

A questo punto o abbandoni il metodo del .End(xlDown), o poni qualche condizione di uscita dal ciclo For :

Dim Oggetto As Range
For Each Oggetto In Range(Range("A1"), Range("A1").End(xlDown))
If Oggetto.Text = "" Then Exit For
'...
'...
Next Oggetto

leomac
22-10-2009, 15:51
Ho optato per l'uscita dal ciclo che ha completamente risolto il problema.:D
nn so come nn ho fatto a pensarci ...:doh: ma certe volte il cevello vaga per conto suo :O
thx Marco

1 saluto:oink: