excel-vba Evitare l'uso di ActiveCell o ActiveSheet in Excel


Esempio

L'utilizzo di ActiveCell o ActiveSheet può essere fonte di errori se (per qualsiasi motivo) il codice viene eseguito nel posto sbagliato.

ActiveCell.Value = "Hello" 
'will place "Hello" in the cell that is currently selected
Cells(1, 1).Value = "Hello" 
'will always place "Hello" in A1 of the currently selected sheet

ActiveSheet.Cells(1, 1).Value = "Hello" 
'will place "Hello" in A1 of the currently selected sheet
Sheets("MySheetName").Cells(1, 1).Value = "Hello" 
'will always place "Hello" in A1 of the sheet named "MySheetName"
  • L'uso di Active* può creare problemi nelle macro di lunga durata se l'utente si annoia e fa clic su un altro foglio di lavoro o apre un'altra cartella di lavoro.
  • Può creare problemi se il codice si apre o crea un'altra cartella di lavoro.
  • Può creare problemi se il tuo codice utilizza Sheets("MyOtherSheet").Select e hai dimenticato il foglio in cui ti Sheets("MyOtherSheet").Select prima di iniziare a leggere o scrivere su di esso.