Uporaba predmeta delovnega zvezka v Excelu VBA (Odpri, Zapri, Shrani, Nastavi)

V tej vadnici bom obravnaval, kako delati z delovnimi zvezki v Excelu z uporabo VBA.

V Excelu je "delovni zvezek" predmet, ki je del zbirke "delovni zvezki". V delovnem zvezku imate različne predmete, kot so delovni listi, listi grafikonov, celice in obsegi, predmeti grafikonov, oblike itd.

Z VBA lahko s predmetom delovnega zvezka naredite veliko stvari - na primer odprete določen delovni zvezek, shranite in zaprete delovne zvezke, ustvarite nove delovne zvezke, spremenite lastnosti delovnega zvezka itd.

Pa začnimo.

Vse kode, ki jih omenjam v tej vadnici, je treba postaviti v urejevalnik Visual Basic. Pojdite na razdelek »Kam postaviti kodo VBA«, če želite izvedeti, kako deluje.

Če vas zanima učenje VBA na enostaven način, si oglejte moj Spletno usposabljanje Excel VBA.

Sklicevanje na delovni zvezek z uporabo VBA

V VBA se lahko sklicujete na predmet delovnega zvezka na različne načine. Izbrana metoda bo odvisna od tega, kaj želite narediti. V tem razdelku bom obravnaval različne načine sklicevanja na delovni zvezek skupaj z nekaterimi primeri kod.

Uporaba imen delovnih zvezkov

Če imate točno ime delovnega zvezka, na katerega se želite sklicevati, ga lahko uporabite v kodi.

Začnimo s preprostim primerom.

Če imate odprta dva delovna zvezka in želite aktivirati delovni zvezek z imenom - Examples.xlsx, lahko uporabite spodnjo kodo:

Sub ActivateWorkbook () Delovni zvezki ("Primeri.xlsx"). Aktivirajte End Sub

Upoštevajte, da morate skupaj z razširitvijo uporabiti ime datoteke, če je bila datoteka shranjena. Če ni shranjeno, lahko uporabite ime brez razširitve datoteke.

Če niste prepričani, katero ime uporabiti, poiščite pomoč v Raziskovalcu projektov.

Če želite aktivirati delovni zvezek in izbrati določeno celico na delovnem listu v tem delovnem zvezku, morate navesti celoten naslov celice (vključno z delovnim zvezkom in imenom delovnega lista).

Sub ActivateWorkbook () Delovni zvezki ("Primeri.xlsx"). Delovni listi ("Sheet1"). Aktivirajte obseg ("A1"). Izberite End Sub

Zgornja koda najprej aktivira Sheet1 v delovnem zvezku Examples.xlsx in nato izbere celico A1 na listu.

Pogosto boste videli kodo, kjer se sklicuje na delovni list ali celico/obseg, ne da bi se nanašali na delovni zvezek. To se zgodi, ko se sklicujete na delovni list/obsege v istem delovnem zvezku, ki vsebuje kodo in je hkrati tudi aktiven delovni zvezek. V nekaterih primerih pa morate za zagotovitev, da koda deluje, določiti delovni zvezek (več o tem v razdelku Ta delovni zvezek).

Uporaba indeksnih številk

Delovne zvezke lahko uporabite tudi glede na njihovo indeksno številko.

Če imate na primer odprte tri delovne zvezke, vam bo naslednja koda prikazala imena treh delovnih zvezkov v polju za sporočila (enega za drugim).

Sub WorkbookName () Delovni zvezki MsgBox (1) .Ime Delovni zvezki MsgBox (2). Imeniki Delovni zvezki MsgBox (3).

Zgornja koda uporablja MsgBox - to je funkcija, ki prikaže polje s sporočilom z navedenim besedilom/vrednostjo (kar je v tem primeru ime delovnega zvezka).

Ena od težav, ki jih imam pogosto pri uporabi indeksnih številk v delovnih zvezkih, je ta, da nikoli ne veste, kateri je prvi delovni zvezek in kateri drugi itd. Zagotovo bi morali zagnati kodo, kot je prikazano zgoraj, ali kaj podobnega, če želite prebrskati odprte delovne zvezke in poznati njihovo indeksno številko.

Excel obravnava prvi odprti delovni zvezek tako, da ima indeksno številko 1, naslednji pa 2 in tako naprej.

Kljub tej pomanjkljivosti lahko uporaba indeksnih številk pride prav. Če na primer želite prelistati vse odprte delovne zvezke in shraniti vse, lahko uporabite indeksne številke. V tem primeru, ker želite, da se to zgodi vsem delovnim zvezkom, vas ne skrbijo njihove posamezne številke indeksov.

Spodnja koda bi prečkala vse odprte delovne zvezke in zaprla vse razen delovnega zvezka, ki ima to kodo VBA.

Sub CloseWorkbooks () Dim WbCount As Integer WbCount = Workbooks.Count For i = WbCount To 1 Step -1 If Workbooks (i) .Ime ThisWorkbook.Name then Workbooks (i) .Close End If Next i End Sub

Zgornja koda šteje število odprtih delovnih zvezkov in nato preide skozi vse delovne zvezke z uporabo zanke Za vsak.

S pogojem IF preveri, ali je ime delovnega zvezka enako imenu delovnega zvezka, kjer se izvaja koda.

Če se ne ujema, zapre delovni zvezek in se premakne na naslednjega.

Upoštevajte, da smo izvedli zanko od WbCount do 1 s korakom -1. To se naredi tako kot pri vsaki zanki, število odprtih delovnih zvezkov se zmanjšuje.

Ta delovni zvezek je podrobno opisan v naslednjem razdelku.

Uporaba ActiveWorkbook -a

ActiveWorkbook, kot že ime pove, se nanaša na delovni zvezek, ki je aktiven.

Spodnja koda bi prikazala ime aktivnega delovnega zvezka.

Sub ActiveWorkbookName () MsgBox ActiveWorkbook.Name End Sub

Ko uporabite VBA za aktiviranje drugega delovnega zvezka, bi se del ActiveWorkbook v VBA začel sklicevati na aktiviran delovni zvezek.

Tukaj je primer tega.

Če imate delovni zvezek aktiven in vanj vstavite naslednjo kodo in jo zaženete, bo najprej prikazano ime delovnega zvezka s kodo, nato pa ime Examples.xlsx (ki se aktivira s kodo).

Sub ActiveWorkbookName () MsgBox ActiveWorkbook.Name Delovni zvezki ("Primeri.xlsx"). Aktivirajte MsgBox ActiveWorkbook.Name End Sub

Upoštevajte, da ko ustvarite nov delovni zvezek z uporabo VBA, ta na novo ustvarjen delovni zvezek samodejno postane aktivni delovni zvezek.

Uporaba tega delovnega zvezka

Ta delovni zvezek se nanaša na delovni zvezek, v katerem se izvaja koda.

Vsak delovni zvezek bi imel kot del predmet ThisWorkbook (viden v Raziskovalcu projektov).

'ThisWorkbook' lahko shrani običajne makre (podobne tistim, ki jih dodajamo v module), pa tudi postopke za dogodke. Postopek dogodka je nekaj, kar se sproži na podlagi dogodka - na primer dvojni klik na celico ali shranjevanje delovnega zvezka ali aktiviranje delovnega lista.

Vsak postopek dogodka, ki ga shranite v ta "delovni zvezek", bi bil na voljo v celotnem delovnem zvezku v primerjavi z dogodki na ravni lista, ki so omejeni samo na določene liste.

Če na primer dvokliknete objekt ThisWorkbook v Raziskovalcu projektov in vanj kopirate in prilepite spodnjo kodo, se bo prikazal naslov celice vsakič, ko dvokliknete katero koli celico v celotnem delovnem zvezku.

Private Sub Workbook_SheetBeforeDoubleClick (ByVal Sh As Object, ByVal Tar As Range, Cancel As Boolean) MsgBox Target.Address End Sub

Medtem ko je glavna vloga tega delovnega zvezka shranjevanje postopka dogodka, ga lahko uporabite tudi za sklicevanje na delovni zvezek, kjer se izvaja koda.

Spodnja koda bi vrnila ime delovnega zvezka, v katerem se koda izvaja.

Sub ThisWorkbookName () MsgBox ThisWorkbook.Name End Sub

Prednost uporabe ThisWorkbook (v primerjavi z ActiveWorkbook) je, da se v vseh primerih nanaša na isti delovni zvezek (tisti, v katerem je koda). Če torej za dodajanje novega delovnega zvezka uporabite kodo VBA, bi se ActiveWorkbook spremenil, vendar bi se ta še vedno skliceval na tistega, ki ima kodo.

Ustvarjanje novega predmeta delovnega zvezka

Naslednja koda bo ustvarila nov delovni zvezek.

Sub CreateNewWorkbook () Delovni zvezki. Dodajte End Sub

Ko dodate nov delovni zvezek, postane aktivni.

Naslednja koda bo dodala nov delovni zvezek in nato prikazala ime tega delovnega zvezka (kar bi bilo privzeto ime vrste Book1).

Sub Ustvarite delovne zvezke NewWorkbook (). Dodajte MsgBox ActiveWorkbook.Name End Sub

Odprite delovni zvezek z uporabo VBA

Če poznate pot do datoteke v delovnem zvezku, lahko uporabite VBA za odpiranje določenega delovnega zvezka.

Spodnja koda bo odprla delovni zvezek - Examples.xlsx, ki je v mapi Dokumenti v mojem sistemu.

Sub OpenWorkbook () Workbooks.Open ("C: \ Users \ sumit \ Documents \ Examples.xlsx") End Sub

Če datoteka obstaja v privzeti mapi, to je mapa, v kateri VBA privzeto shrani nove datoteke, lahko preprosto določite ime delovnega zvezka - brez celotne poti.

Sub OpenWorkbook () Workbooks.Open ("Examples.xlsx") End Sub

Če delovni zvezek, ki ga poskušate odpreti, ne obstaja, se prikaže napaka.

Da bi se izognili tej napaki, lahko svoji kodi dodate nekaj vrstic, da najprej preverite, ali datoteka obstaja ali ne, in če obstaja, jo poskusite odpreti.

Spodnja koda bi preverila lokacijo datoteke in če ne obstaja, bo prikazala sporočilo po meri (ne sporočilo o napaki):

Sub OpenWorkbook () Če Dir ("C: \ Users \ sumit \ Documents \ Examples.xlsx") "" Potem delovni zvezki.Open ("C: \ Users \ sumit \ Documents \ Examples.xlsx") Sicer MsgBox "Datoteka ne ne obstaja "End If End Sub

V pogovornem oknu Odpri lahko izberete tudi datoteko, ki jo želite odpreti.

Sub OpenWorkbook () On Error Resume Next Dim FilePath As String FilePath = Application.GetOpenFilename Workbooks.Open (FilePath) End Sub

Zgornja koda odpre pogovorno okno Odpri. Ko izberete datoteko, ki jo želite odpreti, pot datoteki dodeli spremenljivki FilePath. Delovni zvezki.Open nato odpre datoteko s potjo datoteke.

Če uporabnik ne odpre datoteke in klikne na gumb Prekliči, FilePath postane False. Da v tem primeru ne bi prišlo do napake, smo uporabili stavek 'On Error Resume Next'.

Sorodno: Naučite se vse o ravnanju z napakami v Excelu VBA

Shranjevanje delovnega zvezka

Če želite shraniti aktivni delovni zvezek, uporabite spodnjo kodo:

Sub Shrani delovno knjigo () ActiveWorkbook.Save End Sub

Ta koda deluje za delovne zvezke, ki so bili že shranjeni prej. Ker delovni zvezek vsebuje zgornji makro, če ga naslednjič odprete, ga ne boste shranili kot datoteko .xlsm (ali .xls).

Če prvič shranjujete delovni zvezek, se prikaže poziv, kot je prikazano spodaj:

Pri prvem shranjevanju je bolje uporabiti možnost »Shrani«.

Spodnja koda bi aktivni delovni zvezek shranila kot datoteko .xlsm na privzeto mesto (kar je mapa dokumentov v mojem sistemu).

Sub SaveWorkbook () ActiveWorkbook.SaveAs Ime datoteke: = "Test.xlsm", FileFormat: = xlOpenXMLWorkbookMacroEnabled End Sub

Če želite, da se datoteka shrani na določeno mesto, morate to omeniti v vrednosti Filename. Spodnja koda shrani datoteko na moje namizje.

Sub SaveWorkbook () ActiveWorkbook.SaveAs Ime datoteke: = "C: \ Users \ sumit \ Desktop \ Test.xlsm", FileFormat: = xlOpenXMLWorkbookMacroEnabled End Sub

Če želite, da ima uporabnik možnost izbire lokacije za shranjevanje datoteke, lahko pokličete pogovorno okno Shrani. Spodnja koda prikazuje pogovorno okno Saveas in uporabniku omogoča, da izbere mesto, kamor naj se datoteka shrani.

Sub SaveWorkbook () Dim FilePath As String FilePath = Application.GetSaveAsFilename ActiveWorkbook.SaveAs Ime datoteke: = FilePath & ".xlsm", FileFormat: = xlOpenXMLWorkbookMacroEnabled End Sub

Upoštevajte, da lahko namesto FileFormat: = xlOpenXMLWorkbookMacroEnabled uporabite tudi FileFormat: = 52, kjer je 52 koda xlOpenXMLWorkbookMacroEnabled.

Shranjevanje vseh odprtih delovnih zvezkov

Če imate odprtih več delovnih zvezkov in želite shraniti vse delovne zvezke, lahko uporabite spodnjo kodo:

Sub SaveAllWorkbooks () Dim wb kot delovni zvezek za vsako wb v delovnih zvezkih wb.Save Next wb End Sub

Zgoraj shranite vse delovne zvezke, tudi tiste, ki niso bili nikoli shranjeni. Delovni zvezki, ki prej niso bili shranjeni, bi bili shranjeni na privzeti lokaciji.

Če želite shraniti samo tiste delovne zvezke, ki so bili prej shranjeni, lahko uporabite spodnjo kodo:

Sub SaveAllWorkbooks () Zatemni wb kot delovni zvezek za vsako wb v delovnih zvezkih Če wb.Path "" Potem wb.Save End Če Naslednji wb End Sub

Shranjevanje in zapiranje vseh delovnih zvezkov

Če želite zapreti vse delovne zvezke, razen delovnega zvezka, v katerem je trenutna koda, lahko uporabite spodnjo kodo:

Sub CloseandSaveWorkbooks () Dim wb kot delovni zvezek za vsako wb v delovnih zvezkih Če wb.Ime ThisWorkbook.Name Potem wb.Close SaveChanges: = True End Če Naslednji wb End Sub

Zgornja koda bi zaprla vse delovne zvezke (razen delovnega zvezka s kodo - ThisWorkbook). V primeru sprememb v teh delovnih zvezkih bi bile spremembe shranjene. Če obstaja delovni zvezek, ki ni bil nikoli shranjen, bo prikazan pogovorno okno shrani kot.

Shranite kopijo delovnega zvezka (s časovno oznako)

Ko delam s kompleksnimi podatki in nadzorno ploščo v Excelovih delovnih zvezkih, pogosto ustvarjam različne različice svojih delovnih zvezkov. To je v pomoč, če gre kaj narobe z mojim trenutnim delovnim zvezkom. Vsaj kopijo bi imel shranjeno z drugim imenom (in izgubil bi samo delo, ki sem ga opravil po ustvarjanju kopije).

Tukaj je koda VBA, ki bo ustvarila kopijo vašega delovnega zvezka in ga shranila na določeno mesto.

Sub CreateaCopyofWorkbook () ThisWorkbook.SaveCopyAs Ime datoteke: = "C: \ Users \ sumit \ Desktop \ BackupCopy.xlsm" End Sub

Zgornja koda bi shranila kopijo vašega delovnega zvezka vsakič, ko zaženete ta makro.

Čeprav to odlično deluje, bi se počutil bolj udobno, če bi imel pri vsakem zagonu te kode shranjene različne kopije. Razlog za to je pomemben: če naredim nenamerno napako in zaženem ta makro, bo to prihranilo delo z napakami. In ne bi imel dostopa do dela, preden bi naredil napako.

Za reševanje takih situacij lahko uporabite spodnjo kodo, ki vsakič, ko jo shranite, shrani novo kopijo dela. Doda tudi datum in časovni žig kot del imena delovnega zvezka. To vam lahko pomaga slediti napakam, ki ste jih naredili, saj nikoli ne izgubite nobene od predhodno ustvarjenih varnostnih kopij.

Private Sub Workbook_BeforeSave (ByVal SaveAsUI Kot Boolean, Prekliči kot Boolean) ThisWorkbook.SaveCopyAs Ime datoteke: = "C: \ Users \ sumit \ Desktop \ BackupCopy" & Format (Now (), "dd-mm-yy-hh-mm-ss -AMPM ") &" .xlsm "End Sub

Zgornja koda bi ustvarila kopijo vsakič, ko zaženete ta makro, in imenu delovnega zvezka dodala datum/čas.

Ustvarite nov delovni zvezek za vsak delovni list

V nekaterih primerih imate morda delovni zvezek z več delovnimi listi in želite ustvariti delovni zvezek za vsak delovni list.

To lahko velja, če imate mesečna/četrtletna poročila v enem delovnem zvezku in jih želite razdeliti v en delovni zvezek za vsak delovni list.

Ali pa, če imate poročila o oddelkih in jih želite razdeliti na posamezne delovne zvezke, da jih lahko pošljete vodjem oddelkov.

Tu je koda, ki bo ustvarila delovni zvezek za vsak delovni list, mu dala enako ime kot delovnemu listu in ga shranila v določeno mapo.

Sub CreateWorkbookforWorksheets () Zatemni ws kot delovni list Dim wb kot delovni zvezek za vsak ws v ThisWorkbook.Worksheets Set wb = Workbooks.Add ws.Copy Before: = wb.Sheets (1) Application.DisplayAlerts = False wb.Sheets (2) .Delete Application.DisplayAlerts = True wb.SaveAs "C: \ Users \ sumit \ Desktop \ Test \" & ws.Name & ".xlsx" wb.Zapri naslednjo ws End Sub

V zgornji kodi smo uporabili dve spremenljivki 'ws' in 'wb'.

Koda gre skozi vsak delovni list (z uporabo zanke Za vsak naslednji) in zanj ustvari delovni zvezek. Uporablja tudi metodo kopiranja predmeta delovnega lista za ustvarjanje kopije delovnega lista v novem delovnem zvezku.

Upoštevajte, da sem s stavkom SET dodelil spremenljivko 'wb' vsakemu novemu delovnemu zvezku, ki ga ustvari koda.

S to tehniko lahko spremenljivki dodelite predmet delovnega zvezka. To je obravnavano v naslednjem razdelku.

Dodeli objekt delovnega zvezka spremenljivki

V VBA lahko spremenljivki dodelite predmet, nato pa spremenljivko uporabite za sklicevanje na ta predmet.

Na primer, v spodnji kodi uporabljam VBA za dodajanje novega delovnega zvezka in nato dodelim ta delovni zvezek spremenljivki wb. Če želite to narediti, moram uporabiti stavek SET.

Ko dodelim delovni zvezek spremenljivki, so spremenljivki na voljo tudi vse lastnosti delovnega zvezka.

Sub AssigntoVariable () Dim wb As Workbook Set wb = Workbooks.Add wb.SaveAs Ime datoteke: = "C: \ Users \ sumit \ Desktop \ Examples.xlsx" End Sub

Upoštevajte, da je prvi korak v kodi razglasitev "wb" kot spremenljivke vrste delovnega zvezka. To pove VBA, da lahko ta spremenljivka vsebuje predmet delovnega zvezka.

Naslednji stavek uporablja SET za dodelitev spremenljivke novemu delovnemu zvezku, ki ga dodajamo. Ko je ta naloga opravljena, lahko s spremenljivko wb shranimo delovni zvezek (ali z njim naredimo karkoli drugega).

Ponavljanje po odprtih delovnih zvezkih

Zgoraj smo že videli nekaj primerov kod, ki so uporabljale zanko v kodi.

V tem razdelku bom razložil različne načine pregledovanja odprtih delovnih zvezkov z uporabo VBA.

Recimo, da želite shraniti in zapreti vse odprte delovne zvezke, razen tistega s kodo, potem lahko uporabite spodnjo kodo:

Sub CloseandSaveWorkbooks () Dim wb kot delovni zvezek za vsako wb v delovnih zvezkih Če wb.Ime ThisWorkbook.Name Potem wb.Close SaveChanges: = True End Če Naslednji wb End Sub

Zgornja koda uporablja zanko Za vsak za pregled vsakega delovnega zvezka v zbirki Delovni zvezki. Če želite to narediti, moramo najprej spremeniti "wb" kot spremenljivko vrste delovnega zvezka.

V vsakem ciklu zanke se analizira ime vsakega delovnega zvezka in če se ne ujema z imenom delovnega zvezka s kodo, se po shranjevanju vsebine zapre.

Enako je mogoče doseči tudi z drugo zanko, kot je prikazano spodaj:

Sub CloseWorkbooks () Dim WbCount As Integer WbCount = Delovni zvezki. Štetje za i = WbCount do 1 korak -1 Če delovni zvezki (i). Poimenujte ta delovni zvezek. Poimenujte nato delovne zvezke (i). Zaprite Shrani spremembe: = True End Če je naslednji i End Sub

Zgornja koda uporablja zanko For Next za zapiranje vseh delovnih zvezkov, razen tistega, v katerem je koda. V tem primeru nam ni treba razglasiti spremenljivke delovnega zvezka, temveč moramo šteti skupno število odprtih delovnih zvezkov. Ko štejemo, uporabimo zanko For Next za pregled vsakega delovnega zvezka. Številko indeksa uporabljamo tudi za sklicevanje na delovne zvezke v tem primeru.

Upoštevajte, da v zgornji kodi krožimo z WbCount na 1 s korakom -1. To je potrebno, saj se pri vsaki zanki delovni zvezek zapre in število delovnih zvezkov se zmanjša za 1.

Napaka pri delu z objektom delovnega zvezka (napaka med izvajanjem '9')

Ena najpogostejših napak, na katere lahko naletite pri delu z delovnimi zvezki, je - Napaka med izvajanjem '9' - Podnapis je izven obsega.

Na splošno napake VBA niso zelo informativne in pogosto prepustite vam, da ugotovite, kaj je šlo narobe.

Tu je nekaj možnih razlogov, ki lahko povzročijo to napako:

  • Delovni zvezek, do katerega poskušate dostopati, ne obstaja. Na primer, če poskušam dostopati do petega delovnega zvezka z uporabo delovnih zvezkov (5) in so odprti samo 4 delovni zvezki, bom dobil to napako.
  • Če za sklic na delovni zvezek uporabljate napačno ime. Na primer, če je ime vašega delovnega zvezka Primeri.xlsx in uporabljate Primer.xlsx. potem vam bo pokazal to napako.
  • Če niste shranili delovnega zvezka in uporabljate razširitev, se prikaže ta napaka. Na primer, če je ime vašega delovnega zvezka Book1 in uporabljate ime Book1.xlsx, ne da bi ga shranili, boste dobili to napako.
  • Delovni zvezek, do katerega poskušate dostopati, je zaprt.

Pridobite seznam vseh odprtih delovnih zvezkov

Če želite dobiti seznam vseh odprtih delovnih zvezkov v trenutnem delovnem zvezku (delovni zvezek, v katerem izvajate kodo), lahko uporabite spodnjo kodo:

Sub GetWorkbookNames () Zatemni wbcount kot celo število wbcount = Delovni zvezki. Preštej ta delovni zvezek. Delovne liste.Dodaj ActiveSheet.Range ("A1"). Aktiviraj za i = 1 V obseg wbcount ("A1"). Odmik (i - 1, 0). Vrednost = Delovni zvezki (i). Ime Naprej i Konec pod

Zgornja koda doda nov delovni list in nato navede imena vseh odprtih delovnih zvezkov.

Če želite dobiti tudi njihovo pot do datoteke, lahko uporabite spodnjo kodo:

Sub GetWorkbookNames () Zatemni wbcount kot celo število wbcount = Delovni zvezki. Preštej ta delovni zvezek. Delovne liste.Dodaj ActiveSheet.Range ("A1"). Aktiviraj za i = 1 V obseg wbcount ("A1"). Odmik (i - 1, 0). Vrednost = Delovni zvezki (i). Pot & "\" & Delovni zvezki (i). Ime Naprej i Konec pod

Odprite določeni delovni zvezek tako, da dvokliknete celico

Če imate seznam poti datotek za Excelove delovne zvezke, lahko s spodnjo kodo preprosto dvokliknete celico s potjo datoteke in ta delovni zvezek se odpre.

Private Sub Workbook_SheetBeforeDoubleClick (ByVal Sh As Object, ByVal Tar As Range, Cancel As Boolean) Delovni zvezki. Odprite Target.Value End Sub

Ta koda bi bila postavljena v okno s kodo ThisWorkbook.

Storiti to:

  • Dvokliknite predmet ThisWorkbook v raziskovalcu projektov. Upoštevajte, da bi moral biti objekt ThisWorkbook v delovnem zvezku, kjer želite to funkcijo.
  • Kopirajte in prilepite zgornjo kodo.

Če imate natančno pot do datotek, ki jih želite odpreti, lahko to storite tako, da preprosto dvokliknete pot do datoteke in VBA bi takoj odprl ta delovni zvezek.

Kam vstaviti kodo VBA

Se sprašujete, kje je koda VBA v vašem Excelovem delovnem zvezku?

Excel ima zaledje VBA, imenovano urejevalnik VBA. Kodo morate kopirati in prilepiti v okno kode modula VB Editor.

Tu so naslednji koraki:

  1. Pojdite na zavihek Razvijalec.
  2. Kliknite možnost Visual Basic. To bo odprlo urejevalnik VB v zaledju.
  3. V podoknu Raziskovalec projektov v urejevalniku VB z desno tipko miške kliknite kateri koli predmet delovnega zvezka, v katerega želite vstaviti kodo. Če ne vidite Raziskovalca, pojdite na zavihek Pogled in kliknite Raziskovalec projektov.
  4. Pojdite na Vstavi in ​​kliknite Modul. S tem boste v svoj delovni zvezek vstavili objekt modula.
  5. Kodo kopirajte in prilepite v okno modula.

Morda vam bodo všeč tudi naslednji vadnici Excel VBA:

  • Kako posneti makro v Excelu.
  • Ustvarjanje uporabniško določene funkcije v Excelu.
  • Kako ustvariti in uporabiti dodatek v Excelu.
  • Kako obnoviti makre tako, da jih vnesete v delovni zvezek osebnih makrov.
  • Pridobite seznam imen datotek iz mape v Excelu (z in brez VBA).
  • Kako uporabljati funkcijo Excel VBA InStr (s praktičnimi PRIMERI).
  • Kako razvrstiti podatke v Excelu z uporabo VBA (Vodnik po korakih).

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave