Uscita anticipata da un ciclo For … Next (Microsoft Excel)
Se usi i cicli For … Next nella tua programmazione macro (chi non lo fa?), Allora dovresti sapere che possono richiedere molto tempo. Puoi minimizzarlo controllando solo ciò di cui hai bisogno. Ad esempio, si consideri il codice seguente, che controlla un array per vedere se esiste un valore. In caso contrario, aggiunge il valore alla fine dell’array. In caso affermativo, il valore non viene aggiunto.
AddIt = False For J = 1 to NumEntries If NumValues(J) = ToAdd Then AddIt = True Next J If AddIt Then NumEntries = NumEntries + 1 NumValues(NumEntries) = ToAdd End If
Funziona alla grande, ma se l’array diventa grande, puoi finire per passare attraverso il ciclo For … Next un paio di volte. Si consideri ora il codice seguente, che esegue la stessa operazione, ma esce presto dal ciclo For … Next se viene rilevata una corrispondenza.
AddIt = False For J = 1 to NumEntries If NumValues(J) = ToAdd Then AddIt = True Exit For End If Next J If AddIt Then NumEntries = NumEntries + 1 NumValues(NumEntries) = ToAdd End If
Ora, se una corrispondenza viene trovata all’inizio del ciclo, tutte le altre iterazioni vengono saltate perché viene rilevata l’istruzione Exit For e il ciclo viene praticamente chiuso immediatamente. Il risultato è una macro in esecuzione più veloce.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (2260) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: