Visualizza messaggio singolo
Vecchio 17-10-2017, 09.31.15   #15
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Rif: Ma stiamo scherzando o cosa ?

Non siamo a livello accademico:
Come ho già esplicitato, nel 99% dei casi ogni istruzione compresa tra il for ed il next risponde esattamente a quanto indicato nelle specifiche del ciclo, ma il problema si presenta al di fuori del ciclo stesso, quando la variabile iterata in uscita da esso viene riutilizzata, cosa fattibilissima, poichè la variabile referenziata può cambiare valore anche all'interno del ciclo.
Se si prende come esempio il codice seguente:
Codice:
Yt = 1
range(mRange).Select
For Each s_Data In Selection
    Yy = 0: s = s_Data.Value
    For Tt = 1 To Yt
        If s <> mArray(Tt) Then Yy = Yy + 1
    Next
    -> If Yt = Yy Then
        mArray(Yy) = s
        Yt = Yt + 1
        ReDim Preserve mArray(1 To Yt)
    End If
Next
ci si rende conto che la variabile Yt fuori dal ciclo nidificato for...next non avrebbe senso.
Infatti, poichè Tt ed Yt sono entrambe uguali ad 1 al primo ciclo, basterebbe sostituire
If Yt = Yy Then
con
If Tt = Yy Then
...invece no.
Poichè lo step è pari ad 1 anche se non evidenziato esplicitamente, Tt in uscita dal ciclo varrebbe 2, non 1 come esplicitamente imposto con For Tt = 1 To Yt
Di conseguenza, For Each andrebbe a vuoto per tutte le successive iterazioni di s_Data.
___________________________________

Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice
LoryOne non è collegato   Rispondi citando