Selles õpetuses käsitletakse erinevust VBA ActiveWorkbooki ja ThisWorkbooki vahel.
ActiveWorkbook versus ThisWorkbook
Oluline on teada erinevust ActiveWorkbooki ja ThisWorkbooki vahel VBA -s:
ActiveWorkbook on praegu aktiivne töövihik (sarnaselt sellele, kuidas ActiveSheet on praegu aktiivne leht). See töövihik on töövihik, kuhu on salvestatud VBA -kood. See tööraamat ei muutu kunagi.
See tööraamat
Mõelge ThisWorkbookile kui objekti muutujale, mis võimaldab teil viidata töövihikule, mis sisaldab praegu töötavat koodi.
Sellel koodil kuvatakse sõnumikast selle töövihiku nimega:
123 | Sub Show_ThisWorkbook ()MsgBox ThisWorkbook.NameEnd Sub |
ActiveWorkbook
ActiveWorkbook on objekti muutuja, mis võimaldab teil viidata praegu aktiivsele töövihikule.
See kood kuvab MessageBoxi ActiveWorkbooki nimega:
123 | Sub Show_ActiveWorkbook ()MsgBox ActiveWorkbook.NameEnd Sub |
VBA eeldab ActiveWorkbooki
ActiveWorkbookis objektidega (nt arvutustabelitega) töötamisel ei pea te ActiveWorkbooki objekti selgesõnaliselt märkima. VBA eeldab, et viitate ActiveWorkbookile.
Nii et see:
1 | ActiveWorkbook.Sheets ("Sheet1"). Vahemik ("$ A $ 5"). Väärtus = 1 |
Kas see on sama:
1 | Arvutustabelid ("leht 1"). Vahemik ("$ A $ 5"). Väärtus = 1 |
Uued või avatud töövihikud on aktiivsed
Kui loote uue töövihiku või avate töövihiku, muutub töövihik aktiivseks. Selle koodi abil näete ise, mis lisab töövihiku ja saab uue töövihiku nime:
1234 | Sub Show_ActiveWorkbook_Add ()Töövihikud. LisaMsgBox ActiveWorkbook.NameEnd Sub |
Pärast töövihiku lisamist või avamist saate selle ActiveWorkbooki objekti abil muutujale määrata. Allpool toodud näidetes näitame teile, kuidas.
Selle töövihiku ja aktiivse töövihiku näited
Vaheta aktiivset töövihikut
Aktiivse töövihiku vahetamine töövihiku nime abil:
1 | Töövihikud ("Raamat1"). Aktiveeri |
Aktiveeritud töövihiku vahetamine töölehe järjekorranumbri abil (1 on töövihiku esimene tööleht)
1 | Töövihikud (1). Aktiveeri |
Tehke see töövihik aktiivseks
Tehke sellest töövihikust (kuhu on salvestatud praegu töötav kood) ActiveWorkbook:
1 | See töövihik. Aktiveeri |
Määrake ActiveWorkbook muutujaks
Määrake ActiveWorkbook töövihiku objekti muutujale:
12 | Dim wb TöövihikunaMäära wb = ActiveWorkbook |
Sulgege ja salvestage aktiivne töövihik
Sulgeb ja salvestab ActiveWorkbooki:
1 | ActiveWorkbook.Sulge SaveChanges: = Tõsi |
Sulgege aktiivne töövihik salvestamata
Sulgeb ActiveWorkbooki salvestamata:
1 | ActiveWorkbook.Close SaveChanges: = Vale |
ActiveWorkbook - Salvesta nimega
Teostab aktiivse töövihiku salvestamise nime.
123456789 | Sub SaveAsActiveWorkbook ()Tuhm tulemus Variandinaresult = Application.GetSaveAsFilename (InitialFileName: = "", _FileFilter: = "Exceli makro-lubatud töövihik ( *.xlsm), *.xlsm, Exceli töövihik ( *.xlsx), *.xlsx")Kui tulemus = vale, siis tagastageActiveWorkbook.SaveAs tulemusEnd Sub |