VBA ActiveWorkbook vastaan ​​ThisWorkbook

Tässä opetusohjelmassa käsitellään eroa VBA ActiveWorkbookin ja ThisWorkbookin välillä.

ActiveWorkbook vastaan ​​ThisWorkbook

On tärkeää tietää ero ActiveWorkbookin ja ThisWorkbookin välillä VBA: ssa:

ActiveWorkbook on työkirja, joka on tällä hetkellä aktiivinen (samanlainen kuin ActiveSheet on tällä hetkellä aktiivinen taulukko). ThisWorkbook on työkirja, johon VBA -koodi on tallennettu. Tämä työkirja ei koskaan muutu.

Tämä työkirja

Ajattele tätä työkirjaa objektimuuttujana, jonka avulla voit viitata työkirjaan, joka sisältää käynnissä olevan koodin.

Tämä koodi näyttää MessageBoxin, jossa on tämän työkirjan nimi:

123 Sub Show_ThisWorkbook ()MsgBox ThisWorkbook.NameEnd Sub

ActiveWorkbook

ActiveWorkbook on objektimuuttuja, jonka avulla voit viitata aktiiviseen työkirjaan.

Tämä koodi näyttää MessageBoxin ActiveWorkbook -nimellä:

123 Sub Show_ActiveWorkbook ()MsgBox ActiveWorkbook.NameEnd Sub

VBA olettaa ActiveWorkbookin

Kun yrität työskennellä ActiveWorkbookin objektien (esim. Sheets) kanssa, sinun ei tarvitse erikseen mainita ActiveWorkbook -objektia. VBA olettaa, että viittaat ActiveWorkbookiin.

Siis tämä:

1 ActiveWorkbook.Sheets ("Sheet1"). Alue ("$ A $ 5"). Arvo = 1

Onko sama kuin tämä:

1 Sheets ("Sheet1"). Alue ("$ A $ 5"). Arvo = 1

Uudet tai avatut työkirjat ovat aktiivisia

Aina kun luot uuden työkirjan tai avaat työkirjan, työkirja muuttuu aktiiviseksi. Voit itse nähdä tämän koodin, joka lisää työkirjan ja hakee uuden työkirjan nimen:

1234 Sub Show_ActiveWorkbook_Add ()Työkirjat LisääMsgBox ActiveWorkbook.NameEnd Sub

Työkirjan lisäämisen tai avaamisen jälkeen voit määrittää sen muuttujaan ActiveWorkbook -objektin avulla. Näytämme alla olevissa esimerkeissä miten:

Esimerkkejä tästä työkirjasta ja ActiveWorkbookista

Vaihda aktiivinen työkirja

Aktiivisen työkirjan vaihtaminen työkirjan nimen avulla:

1 Työkirjat ("Kirja1"). Aktivoi

Vaihda aktiivista työkirjaa käyttämällä laskentataulukon tilausnumeroa (1 on työkirjan ensimmäinen laskentataulukko)

1 Työkirjat (1) Aktivoi

Tee tästä työkirjasta aktiivinen

Tee tästä työkirjasta (johon nykyinen koodi on tallennettu) ActiveWorkbook:

1 Tämä työkirja

Aseta ActiveWorkbook -arvoksi muuttuja

Määritä ActiveWorkbook työkirjan objektimuuttujalle:

12 Dim wb TyökirjanaAseta wb = ActiveWorkbook

Sulje ja tallenna aktiivinen työkirja

Sulkee ja tallentaa ActiveWorkbookin:

1 ActiveWorkbook.Close SaveChanges: = Totta

Sulje aktiivinen työkirja tallentamatta

Sulkee ActiveWorkbookin tallentamatta:

1 ActiveWorkbook.Close SaveChanges: = False

ActiveWorkbook - Tallenna nimellä

Suorittaa Tallenna nimellä aktiivisen työkirjan.

123456789 Sub SaveAsActiveWorkbook ()Himmennetty tulos Vaihtoehtonaresult = Application.GetSaveAsFilename (InitialFileName: = "", _FileFilter: = "Excelin makrokäyttöinen työkirja ( *.xlsm), *.xlsm, Excel-työkirja ( *.xlsx), *.xlsx")Jos tulos = epätosi, palaaActiveWorkbook.SaveAs tulosEnd Sub

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave