Acest articol va discuta obiectul ActiveSheet în VBA. De asemenea, se va discuta despre cum se activează, se selectează și se accesează foile de lucru (și multe altele). Citiți Ghidul nostru complet al foilor de lucru VBA pentru mai multe informații despre lucrul cu foile de lucru în VBA.
Foaie activă
În VBA, ActiveSheet se referă la Foaia de lucru activă în prezent. O singură foaie poate fi activă odată.
Activați foaia de lucru (setarea fisei ActiveSheet)
Pentru a seta ActiveSheet utilizați Foaia de lucru. Activați:
1 | Fișe de lucru („Intrare”). Activați |
Comanda Activare foaie va „merge la” foaie, schimbând foaia vizibilă.
Exemplul de mai sus folosește numele Sheet (Tab). În schimb, puteți utiliza numele codului VBA pentru foaia de lucru:
1 | Foaie 1. Activați |
Nume ActiveSheet
Pentru a obține numele ActiveSheet:
1 | msgbox ActiveSheet.name |
Foi selectate vs ActiveSheet
În orice moment, o singură foaie poate fi ActiveSheet. Cu toate acestea, mai multe foi de lucru pot fi selectate simultan.
Atunci când sunt selectate mai multe foi de lucru, numai foaia de lucru „de sus” este considerată activă (foaia de lucru activă).
Selectați Foaie de lucru
Dacă doriți să selectați o foaie de lucru în loc să o activați. Folosiți .Selectați în schimb.
Selectați Foaia de lucru după numele filei
Aceasta selectează o foaie de lucru pe baza numelui filei de foaie
1 | Foi de calcul („Introducere”). Selectați |
Selectați Foaia de lucru după numărul de index
Aceasta selectează o foaie de lucru pe baza poziției sale față de alte file
1 | Fișe de lucru (1). Selectați |
Selectați Foaia de lucru cu numele codului VBA
1 | Foaie 1. Selectați |
Selectarea foilor de lucru după numele codului poate preveni erorile cauzate de modificările numelui foii de lucru.
Selectați Foaia de lucru curentă
Pentru a selecta foaia de lucru curentă, utilizați obiectul ActiveSheet:
1 | ActiveSheet.Select |
Mai multe exemple de activare / selectare a foilor
Setați ActiveSheet la Variable
Aceasta va atribui foaia activă unei variabile de obiect a foii de lucru.
123 | Dim ws Ca foaie de lucruSetați ws = ActiveSheet |
Schimbați numele ActiveSheet
Aceasta va schimba numele ActiveSheet.
1 | ActiveSheet.Name = "NumeNou" |
Cu ActiveSheet
Utilizarea declarației With vă permite să vă simplificați codul atunci când lucrați cu obiecte (cum ar fi Foi de calcul sau ActiveSheet).
12345 | Cu ActiveSheet.Name = "StartFresh".Celule.Clar.Range ("A1"). Valoare = .NumeSe termina cu |
Observați cum nu trebuie să repetați „ActiveSheet” înainte de fiecare linie de cod. Acest lucru poate fi un mare economisire de timp atunci când lucrați cu o listă lungă de comenzi.
Buclați prin foi selectate
Următoarea macro va parcurge toate foile selectate, afișând numele acestora.
12345678 | Sub GetSelectedSheetsName ()Dim ws Ca foaie de lucruPentru fiecare ws în ActiveWindow.SelectedSheetsMsgBox ws.NameUrmătorul wsSfârșitul Sub |
GoTo Next Sheet
Acest cod va merge la următoarea foaie. Dacă foaia activă este ultima foaie, atunci va merge la prima foaie din registrul de lucru.
12345 | Dacă ActiveSheet.Index = Worksheets.Count atunciFișe de lucru (1). ActivațiAltfelActiveSheet.Next.ActivateEnd If |