Ho problemi con Range in una Sub chiamata due volte, in un ciclo For, da un'altra di livello superiore.

Francesco Sgamma 0 Punti di reputazione
2025-04-07T10:04:19.1666667+00:00

La Sub è chiamata da un'altra di livello superiore per due volte in un ciclo For.

Nella prima chiamata funziona regolarmente.

Nella seconda non supera l'istruzione indicata anche se le celle risultano selezionate.

Non da' alcun messaggio di errore.

Sub Pulizia(rig, col, rigBase, colBase)

Sheets("Base").Activate

rigBase2 = rigBase + 2
colBase2 = colBase + 2

'= = = = = = = = = = = = = = = = = = = = = = = = = = =
L'istruzione seguente viene eseguita ma non superata
'= = = = = = = = = = = = = = = = = = = = = = == = = = =

Range(Cells(rigBase, colBase), Cells(rigBase2, colBase2)).Select

Selection.ClearContents

Exit Sub

End Sub
Tecnologie per sviluppatori | VB
0 commenti Nessun commento
{count} voti

1 risposta

Ordina per: Più utili
  1. Eleuterio Tedeschi 0 Punti di reputazione Moderatore volontario
    2025-04-07T14:14:16.7166667+00:00

    La Sub è chiamata da un'altra di livello superiore per due volte in un ciclo For.> Nella prima chiamata funziona regolarmente. Nella seconda non supera l'istruzione indicata anche se le celle risultano selezionate.

    Non vedo il progetto nel suo complesso, ma per quel che chiedi, dovrebbe bastare:

    Sub Pulizia(rig, col, rigBase, colBase)
        Worksheets("Base").Cells(rigBase, colBase).Resize(3, 3).ClearContents
    End Sub
    

    Ma non capisco perché gli passi rig e col se poi non le usi, inoltre evita le Select perché non servono se non a far vedere operazioni a video poco utili se non dannose,

    ciao.

    0 commenti Nessun commento

Risposta

Le risposte possono essere contrassegnate come risposte accettate dall'autore della domanda. Ciò consente agli utenti di sapere che la risposta ha risolto il problema dell'autore.