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 |