Korištenje objekta radne knjige u Excelu VBA (Otvori, Zatvori, Spremi, Postavi)

U ovom vodiču pokazat ću kako raditi s radnim knjigama u Excelu pomoću VBA.

U Excelu je 'Radna knjiga' objekt koji je dio zbirke 'Radne knjige'. Unutar radne knjige imate različite objekte, poput radnih listova, listova grafikona, ćelija i raspona, objekata grafikona, oblika itd.

S VBA -om možete učiniti mnogo stvari s objektom radne knjige - poput otvaranja određene radne knjige, spremanja i zatvaranja radnih knjiga, stvaranja novih radnih knjiga, mijenjanja svojstava radne knjige itd.

Pa krenimo.

Svi kodovi koje spominjem u ovom vodiču moraju se staviti u uređivač Visual Basic. Idite na odjeljak "Gdje staviti VBA kôd" da biste saznali kako to funkcionira.

Ako ste zainteresirani za učenje VBA na jednostavan način, provjerite moj Mrežna Excel VBA obuka.

Referenciranje radne knjige pomoću VBA

Postoje različiti načini pozivanja na objekt Radne knjige u VBA -i. Način koji odaberete ovisit će o tome što želite učiniti. U ovom odjeljku pokazat ću različite načine pozivanja na radnu knjigu zajedno s nekim primjerima kodova.

Korištenje naziva radne bilježnice

Ako imate točan naziv radne knjige na koju se želite pozvati, možete upotrijebiti naziv u kodu.

Počnimo s jednostavnim primjerom.

Ako imate otvorene dvije radne knjige i želite aktivirati radnu knjigu s imenom - Examples.xlsx, možete upotrijebiti donji kod:

Sub ActivateWorkbook () Radne knjige ("Primjeri.xlsx"). Aktivirajte End Sub

Imajte na umu da morate koristiti naziv datoteke zajedno s nastavkom ako je datoteka spremljena. Ako nije spremljeno, tada možete koristiti naziv bez nastavka datoteke.

Ako niste sigurni koje ime upotrijebiti, potražite pomoć od Project Explorera.

Ako želite aktivirati radnu knjigu i odabrati određenu ćeliju na radnom listu u toj radnoj knjizi, morate dati cijelu adresu ćelije (uključujući radnu knjigu i naziv radnog lista).

Sub ActivateWorkbook () Radne knjige ("Primjeri.xlsx"). Radni listovi ("Sheet1"). Aktivirajte raspon ("A1"). Odaberite End Sub

Gornji kôd prvo aktivira Sheet1 u radnoj knjizi Examples.xlsx, a zatim odabire ćeliju A1 na listu.

Često ćete vidjeti kôd u kojem se upućuje na radni list ili ćeliju/raspon bez upućivanja na radnu knjigu. To se događa kada se pozivate na radni list/raspone u istoj radnoj knjizi koja sadrži kôd i koja je također aktivna radna knjiga. Međutim, u nekim slučajevima morate navesti radnu knjigu kako biste bili sigurni da kôd radi (više o tome u odjeljku ThisWorkbook).

Korištenje indeksnih brojeva

Radne knjige možete se pozvati i na temelju njihovog indeksnog broja.

Na primjer, ako imate otvorene tri radne knjige, sljedeći kôd prikazat će vam imena tri radne knjige u okviru za poruku (jedan po jedan).

Sub WorkbookName () MsgBox Workbooks (1) .Naziv MsgBox Workbooks (2) .Naziv MsgBox Radne knjige (3) .Name End Sub

Gornji kôd koristi MsgBox - funkciju koja prikazuje okvir s porukom s navedenim tekstom/vrijednošću (što je u ovom slučaju naziv radne knjige).

Jedan od problema koje često imam pri korištenju indeksnih brojeva u radnim knjigama jest taj što nikad ne znate koja je prva radna, a koja druga i tako dalje. Da biste bili sigurni, morali biste pokrenuti kôd kao što je prikazano gore ili nešto slično da biste pregledali otvorene radne knjige i znali njihov indeksni broj.

Excel tretira prvu otvorenu radnu knjigu tako da ima indeksni broj 1, a sljedeća 2 i tako dalje.

Unatoč ovom nedostatku, korištenje indeksnih brojeva može dobro doći. Na primjer, ako želite proći kroz sve otvorene radne knjige i spremiti sve, možete koristiti indeksne brojeve. U ovom slučaju, budući da želite da se to dogodi svim radnim bilježnicama, niste zabrinuti za njihove pojedinačne brojeve indeksa.

Kod u nastavku će proći kroz sve otvorene radne knjige i zatvoriti sve osim radne knjige koja ima ovaj VBA kôd.

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

Gornji kod broji broj otvorenih radnih knjiga i zatim prolazi kroz sve radne knjige pomoću petlje Za svaki.

Koristi uvjet IF za provjeru je li naziv radne knjige isti kao i naziv radne knjige u kojoj se kôd izvodi.

Ako se ne podudara, zatvara radnu knjigu i prelazi na sljedeću.

Imajte na umu da smo petlju pokrenuli od WbCount do 1 s korakom -1. To se radi kao i sa svakom petljom, broj otvorenih radnih knjiga se smanjuje.

Ova radna knjiga detaljno je obrađena u kasnijem odjeljku.

Korištenje ActiveWorkbook -a

ActiveWorkbook, kako naziv govori, odnosi se na radnu knjigu koja je aktivna.

Kod u nastavku prikazao bi vam naziv aktivne radne knjige.

Pod ActiveWorkbookName () MsgBox ActiveWorkbook.Name Kraj Sub

Kada koristite VBA za aktiviranje druge radne knjige, dio ActiveWorkbook u VBA -i nakon toga bi se počeo odnositi na aktiviranu radnu knjigu.

Evo primjera toga.

Ako imate radnu knjigu aktivnu, a vi umetnete sljedeći kôd u nju i pokrenete je, prvo bi se prikazao naziv radne knjige koja ima kôd, a zatim i ime Primjeri.xlsx (koji se aktivira kodom).

Pod ActiveWorkbookName () MsgBox ActiveWorkbook.Name Radne knjige ("Primjeri.xlsx"). Aktivirajte MsgBox ActiveWorkbook.Name Kraj Sub

Imajte na umu da kada kreirate novu radnu knjigu koristeći VBA, ta novostvorena radna knjiga automatski postaje aktivna radna knjiga.

Korištenje ove radne knjige

Ova radna knjiga odnosi se na radnu knjigu u kojoj se izvršava kôd.

Svaka radna knjiga imala bi objekt ThisWorkbook kao dio (vidljiv u Project Exploreru).

‘ThisWorkbook’ može pohraniti uobičajene makronaredbe (slične onima koje dodajemo module), kao i postupke događaja. Postupak događaja je nešto što se pokreće na temelju događaja - kao što je dvostruki klik na ćeliju ili spremanje radne knjige ili aktiviranje radnog lista.

Bilo koji postupak događaja koji spremite u ovu "ovu radnu knjigu" bit će dostupan u cijeloj radnoj knjizi, u usporedbi sa događajima na razini lista koji su ograničeni samo na određene listove.

Na primjer, ako dvaput kliknete objekt ThisWorkbook u Project Exploreru i kopirate i zalijepite donji kod u njega, prikazat će se adresa ćelije svaki put kada dvaput kliknete na bilo koju ćeliju u cijeloj radnoj knjizi.

Private Sub Workbook_SheetBeforeDoubleClick (ByVal Sh kao objekt, ByVal cilj kao raspon, otkaži kao logičko) MsgBox Target.Address End Sub

Iako je glavna uloga ThisWorkbooka spremanje postupka, možete ga koristiti i za upućivanje na radnu knjigu u kojoj se kôd izvršava.

Kod u nastavku vratio bi naziv radne knjige u kojoj se kôd izvršava.

Sub ThisWorkbookName () MsgBox ThisWorkbook.Name Kraj Sub

Prednost korištenja ThisWorkbook -a (preko ActiveWorkbooka) je u tome što bi se u svim slučajevima odnosila na istu radnu knjigu (onu koja ima kôd). Dakle, ako koristite VBA kôd za dodavanje nove radne knjige, ActiveWorkbook bi se promijenio, ali ThisWorkbook bi se i dalje odnosio na onu koja ima kôd.

Stvaranje novog objekta radne knjige

Sljedeći kôd stvorit će novu radnu knjigu.

Pod CreateNewWorkbook () Radne knjige. Dodajte završni pod

Kad dodate novu radnu knjigu, ona postaje aktivna.

Sljedeći će kôd dodati novu radnu knjigu, a zatim će vam pokazati naziv te radne knjige (što bi bio zadani naziv vrste Book1).

Pod CreateNewWorkbook () Workbooks.Add MsgBox ActiveWorkbook.Name Kraj Sub

Otvorite radnu knjigu koristeći VBA

Možete koristiti VBA za otvaranje određene radne knjige ako znate put datoteke radne knjige.

Kod u nastavku otvorit će radnu knjigu - Examples.xlsx koja se nalazi u mapi Dokumenti na mom sustavu.

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

U slučaju da datoteka postoji u zadanoj mapi, a to je mapa u kojoj VBA prema zadanim postavkama sprema nove datoteke, tada možete samo odrediti naziv radne knjige - bez cijele staze.

Sub OpenWorkbook () Workbooks.Open ("Primjeri.xlsx") Kraj Sub

U slučaju da radna knjiga koju pokušavate otvoriti ne postoji, vidjet ćete pogrešku.

Da biste izbjegli ovu pogrešku, svom kodu možete dodati nekoliko redaka kako biste prvo provjerili postoji li datoteka ili ne, a ako postoji, pokušajte je otvoriti.

Kod u nastavku provjerio bi lokaciju datoteke, a ako ne postoji, prikazat će prilagođenu poruku (ne poruku o pogrešci):

Sub OpenWorkbook () If Dir ("C: \ Users \ sumit \ Documents \ Examples.xlsx") "" Then Workbooks.Open ("C: \ Users \ sumit \ Documents \ Examples.xlsx") Else MsgBox "Datoteka ne 't exist "End If End Sub

Također možete upotrijebiti dijaloški okvir Otvori za odabir datoteke koju želite otvoriti.

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

Gornji kôd otvara dijaloški okvir Otvori. Kad odaberete datoteku koju želite otvoriti, ona dodjeljuje put datoteke varijabli FilePath. Radne knjige.Open tada koristi putanju datoteke za otvaranje datoteke.

U slučaju da korisnik ne otvori datoteku i klikne na gumb Odustani, FilePath postaje False. Kako bismo izbjegli grešku u ovom slučaju, upotrijebili smo izraz 'On Error Resume Next'.

Povezano: Saznajte sve o rješavanju pogrešaka u programu Excel VBA

Spremanje radne knjige

Da biste spremili aktivnu radnu knjigu, upotrijebite donji kod:

Sub Spremi radnu knjigu () ActiveWorkbook.Save End Sub

Ovaj kôd radi za radne knjige koje su već spremljene. Također, budući da radna knjiga sadrži gornju makronaredbu, ako nije spremljena kao .xlsm (ili .xls) datoteka, izgubit ćete makronaredbu pri sljedećem otvaranju.

Ako radnu knjigu spremate prvi put, prikazat će se upit kao što je prikazano u nastavku:

Prilikom prvog spremanja bolje je koristiti opciju "Saveas".

Kod u nastavku spremao bi aktivnu radnu knjigu kao .xlsm datoteku na zadanom mjestu (što je mapa dokumenata u mom sustavu).

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

Ako želite da se datoteka spremi na određeno mjesto, morate to spomenuti u vrijednosti Filename. Kod u nastavku sprema datoteku na moju radnu površinu.

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

Ako želite da korisnik dobije mogućnost odabira mjesta za spremanje datoteke, možete koristiti poziv dijaloškog okvira Spremi. Donji kôd prikazuje dijaloški okvir Saveas i omogućuje korisniku da odabere mjesto na kojem bi se datoteka trebala spremiti.

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

Imajte na umu da umjesto FileFormat: = xlOpenXMLWorkbookMacroEnabled, možete koristiti i FileFormat: = 52, gdje je 52 kôd xlOpenXMLWorkbookMacroEnabled.

Spremanje svih otvorenih radnih knjiga

Ako imate više otvorenih radnih knjiga i želite spremiti sve radne knjige, možete upotrijebiti donji kod:

Sub SaveAllWorkbooks () Zatamni wb kao radnu knjigu za svaku wb u radnim knjigama wb.Save Next wb End Sub

Gore navedeno sprema sve radne bilježnice, uključujući i one koje nikada nisu spremljene. Radne knjige koje prethodno nisu spremljene spremit će se na zadano mjesto.

Ako želite spremiti samo one radne knjige koje su prethodno spremljene, možete upotrijebiti donji kod:

Sub SaveAllWorkbooks () Zatamni wb kao radnu knjigu za svaku wb u radnim knjigama If wb.Path "" Zatim wb.Save End ako slijedi wb End Sub

Spremanje i zatvaranje svih radnih knjiga

Ako želite zatvoriti sve radne knjige, osim radne knjige u kojoj je trenutačni kôd, možete upotrijebiti donji kod:

Sub CloseandSaveWorkbooks () Dim wb kao radna knjiga za svaku wb u radnim knjigama Ako wb.Ime ThisWorkbook.Name Zatim wb.Close SaveChanges: = True End If Next wb End Sub

Gornji kod zatvorio bi sve radne knjige (osim radne knjige koja ima kôd - ThisWorkbook). U slučaju da dođe do promjena u ovim radnim bilježnicama, promjene bi bile spremljene. U slučaju da postoji radna knjiga koja nikada nije spremljena, prikazat će se dijaloški okvir Spremi kao.

Spremite kopiju radne knjige (s vremenskom oznakom)

Kada radim sa složenim podacima i nadzornom pločom u radnim knjigama programa Excel, često stvaram različite verzije svojih radnih knjiga. Ovo je korisno u slučaju da nešto pođe po zlu s mojom trenutnom radnom knjigom. Ja bih barem sačuvao njezinu kopiju s drugim imenom (i izgubio bih posao koji sam obavio nakon što sam stvorio kopiju).

Ovdje je VBA kôd koji će stvoriti kopiju vaše radne knjige i spremiti je na navedeno mjesto.

Sub CreateaCopyofWorkbook () ThisWorkbook.SaveCopyAs Naziv datoteke: = "C: \ Users \ sumit \ Desktop \ BackupCopy.xlsm" Završetak pod

Gornji kôd spremio bi kopiju vaše radne knjige svaki put kada pokrenete ovu makronaredbu.

Iako ovo odlično funkcionira, osjećao bih se ugodnije da imam spremljene različite kopije kad god pokrenem ovaj kôd. Razlog zašto je ovo važno je da ako napravim nenamjernu pogrešku i pokrenem ovaj makro, to će spasiti rad s pogreškama. I ne bih imao pristup djelu prije nego što sam pogriješio.

Za rješavanje takvih situacija možete upotrijebiti donji kod koji sprema novu kopiju djela svaki put kada ga spremite. Također dodaje datum i vremensku oznaku kao dio naziva radne knjige. To vam može pomoći da pratite svaku pogrešku koju ste učinili jer nikada ne gubite nijednu od prethodno stvorenih sigurnosnih kopija.

Private Sub Workbook_BeforeSave (ByVal SaveAsUI Kao Boolean, Otkaži kao Boolean) ThisWorkbook.SaveCopyAs Naziv datoteke: = "C: \ Users \ sumit \ Desktop \ BackupCopy" & Format (Now (), "dd-mm-yy-hh-mm-ss -AMPM ") &" .xlsm "Kraj podv

Gornji kôd stvorio bi kopiju svaki put kada pokrenete ovu makronaredbu i dodao naziv radnog vremena u naziv radne knjige.

Izradite novu radnu knjigu za svaki radni list

U nekim slučajevima možda imate radnu knjigu s više radnih listova i želite stvoriti radnu knjigu za svaki radni list.

To bi mogao biti slučaj kada imate mjesečna/tromjesečna izvješća u jednoj radnoj knjizi i želite ih podijeliti u jednu radnu knjigu za svaki radni list.

Ili, ako imate izvješća o odjelima i želite ih podijeliti u pojedinačne radne bilježnice kako biste te pojedinačne radne knjige mogli poslati načelnicima odjela.

Ovdje je kôd koji će stvoriti radnu knjigu za svaki radni list, dati joj isto ime kao i radnom listu i spremiti je u navedenu mapu.

Sub CreateWorkbookforWorksheets () Zatamni ws Kao radni list Dim wb Kao radna knjiga za svaki ws u 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.Zatvoriti Sljedeće ws Završna pod

U gornjem kodu koristili smo dvije varijable 'ws' i 'wb'.

Kôd prolazi kroz svaki radni list (pomoću petlje Za svaki sljedeći) i za njega stvara radnu knjigu. Također koristi metodu kopiranja objekta radnog lista za stvaranje kopije radnog lista u novoj radnoj knjizi.

Imajte na umu da sam upotrijebio izraz SET za dodjelu varijable 'wb' bilo kojoj novoj radnoj knjizi koju je stvorio kôd.

Ovu tehniku ​​možete koristiti za dodjeljivanje objekta radne knjige varijabli. Ovo je obrađeno u sljedećem odjeljku.

Dodijelite objekt radne knjige varijabli

U VBA -u možete dodijeliti objekt varijabli, a zatim upotrijebiti varijablu za pozivanje na taj objekt.

Na primjer, u donjem kodu koristim VBA za dodavanje nove radne knjige, a zatim dodjeljujem tu radnu knjigu varijabli wb. Da bih to učinio, moram upotrijebiti izraz SET.

Nakon što dodijelim radnu knjigu varijabli, sva svojstva radne knjige također su dostupna varijabli.

Sub AssigntoVariable () Dim wb Kao radna knjiga Set wb = Workbooks.Add wb.SaveAs Filename: = "C: \ Users \ sumit \ Desktop \ Examples.xlsx" End Sub

Imajte na umu da je prvi korak u kodu deklariranje 'wb' kao varijable tipa radne knjige. To govori VBA -i da ova varijabla može držati objekt radne knjige.

Sljedeći izraz koristi SET za dodjeljivanje varijable novoj radnoj knjizi koju dodajemo. Nakon što je ovaj zadatak dovršen, možemo upotrijebiti varijablu wb za spremanje radne knjige (ili učiniti bilo što drugo s njom).

Ponavljanje otvorenih radnih knjiga

Već smo vidjeli nekoliko primjera kodova koji su koristili petlje u kodu.

U ovom odjeljku ću objasniti različite načine ponavljanja otvorenih radnih knjiga pomoću VBA.

Pretpostavimo da želite spremiti i zatvoriti sve otvorene radne knjige, osim one s kodom, tada možete upotrijebiti donji kod:

Sub CloseandSaveWorkbooks () Dim wb kao radna knjiga za svaku wb u radnim knjigama Ako wb.Ime ThisWorkbook.Name Zatim wb.Close SaveChanges: = True End If Next wb End Sub

Gornji kôd koristi petlju Za svaki za prolazak kroz svaku radnu knjigu u zbirci Radne knjige. Da bismo to učinili, prvo moramo proglasiti 'wb' kao varijablu tipa radne knjige.

U svakom ciklusu petlje analizira se svaki naziv radne knjige, a ako se ne podudara s nazivom radne knjige koja ima kôd, zatvara se nakon spremanja njezinog sadržaja.

Isto se može postići i s drugom petljom kao što je prikazano u nastavku:

Sub CloseWorkbooks () Dim WbCount As Integer WbCount = Workbooks.Count For i = WbCount do 1 Step -1 If Workbooks (i) .Ime ThisWorkbook.Name Then Workbooks (i) .Close SaveChanges: = True End If Next i End Sub

Gornji kôd koristi petlju For Next za zatvaranje svih radnih knjiga osim one u kojoj je kôd. U ovom slučaju ne moramo deklarirati varijablu radne knjige, već moramo brojati ukupan broj otvorenih radnih knjiga. Kad imamo odbrojavanje, koristimo petlju Za sljedeće da prođemo kroz svaku radnu knjigu. Također, u ovom slučaju broj indeksa koristimo za upućivanje na radne bilježnice.

Imajte na umu da se u gornjem kodu petljamo s WbCount na 1 s Korakom -1. To je potrebno jer se pri svakoj petlji radna knjiga zatvara, a broj radnih bilježnica smanjuje se za 1.

Pogreška pri radu s objektom radne knjige (pogreška tijekom izvođenja '9')

Jedna od najčešćih pogrešaka na koju možete naići pri radu s radnim knjigama je - Pogreška tijekom izvođenja ‘9’ - Indeks je izvan raspona.

Općenito, VBA pogreške nisu previše informativne i često ostavljate vama da shvatite što je pošlo po zlu.

Evo nekih mogućih razloga koji mogu dovesti do ove pogreške:

  • Radna knjiga kojoj pokušavate pristupiti ne postoji. Na primjer, ako pokušavam pristupiti petoj radnoj knjizi pomoću radnih knjiga (5), a otvorene su samo 4 radne knjige, dobit ću ovu pogrešku.
  • Ako koristite pogrešan naziv za upućivanje na radnu knjigu. Na primjer, ako je naziv vaše radne knjige Primjeri.xlsx i koristite primjer.xlsx. tada će vam pokazati ovu pogrešku.
  • Ako niste spremili radnu knjigu, a koristite proširenje, dobit ćete ovu pogrešku. Na primjer, ako je naziv vaše radne knjige Book1, a vi koristite naziv Book1.xlsx bez spremanja, dobit ćete ovu pogrešku.
  • Radna knjiga kojoj pokušavate pristupiti je zatvorena.

Nabavite popis svih otvorenih radnih knjiga

Ako želite dobiti popis svih otvorenih radnih knjiga u trenutnoj radnoj knjizi (radna knjiga u kojoj pokrećete kôd), možete upotrijebiti donji kod:

Pod GetWorkbookNames () Dim wbcount As Integer wbcount = Workbooks.Count ThisWorkbook.Worksheets.Add ActiveSheet.Range ("A1"). Aktivirajte za i = 1 U raspon wbcount ("A1"). Odstupanje (i - 1, 0). Vrijednost = Radne knjige (i). Naziv Sljedeći i Kraj pod

Gornji kôd dodaje novi radni list, a zatim navodi naziv svih otvorenih radnih knjiga.

Ako želite dobiti i njihovu putanju do datoteke, možete upotrijebiti donji kod:

Pod GetWorkbookNames () Dim wbcount As Integer wbcount = Workbooks.Count ThisWorkbook.Worksheets.Add ActiveSheet.Range ("A1"). Aktivirajte za i = 1 U raspon wbcount ("A1"). Odstupanje (i - 1, 0). Vrijednost = Radne knjige (i) .Put & "\" & Radne knjige (i). Naziv Sljedeći i Kraj pod

Otvorite Navedenu radnu knjigu dvostrukim klikom na ćeliju

Ako imate popis putova datoteka za Excel radne knjige, možete upotrijebiti donji kod da jednostavno dvaput kliknete na ćeliju s putom datoteke i ona će otvoriti tu radnu knjigu.

Private Sub Workbook_SheetBeforeDoubleClick (ByVal Sh As Object, ByVal Target as Range, Cancel As Boolean) Workbooks.Open Target.Value End Sub

Ovaj kôd bi se stavio u prozor koda ThisWorkbook.

Uraditi ovo:

  • Dvaput kliknite objekt ThisWorkbook u istraživaču projekata. Imajte na umu da bi objekt ThisWorkbook trebao biti u radnoj knjizi u kojoj želite ovu funkcionalnost.
  • Kopirajte i zalijepite gornji kod.

Sada, ako imate točan put do datoteka koje želite otvoriti, to možete učiniti jednostavnim dvostrukim klikom na put do datoteke i VBA bi odmah otvorio tu radnu knjigu.

Gdje staviti VBA kod

Pitate se gdje se VBA kôd nalazi u vašoj radnoj knjizi programa Excel?

Excel ima VBA pozadinu koja se naziva VBA editor. Morate kopirati i zalijepiti kôd u prozor koda modula VB Editor.

Evo koraka za to:

  1. Idite na karticu Developer.
  2. Kliknite na opciju Visual Basic. Ovo će otvoriti VB editor u pozadini.
  3. U oknu Project Explorer u VB Editoru desnom tipkom miša kliknite bilo koji objekt radne knjige u koji želite umetnuti kôd. Ako ne vidite Project Explorer, idite na karticu View i kliknite na Project Explorer.
  4. Idite na Umetni i kliknite na Modul. Ovo će umetnuti objekt modula u vašu radnu knjigu.
  5. Kopirajte i zalijepite kôd u prozor modula.

Možda će vam se svidjeti i sljedeći Excel VBA vodiči:

  • Kako snimiti makro u Excelu.
  • Stvaranje korisnički definirane funkcije u Excelu.
  • Kako stvoriti i koristiti programski dodatak u Excelu.
  • Kako obnoviti makronaredbe stavljanjem u radnu knjigu osobnih makronaredbi.
  • Dobijte popis imena datoteka iz mape u Excelu (sa i bez VBA).
  • Kako koristiti Excel VBA InStr funkciju (s praktičnim PRIMJERIMA).
  • Kako sortirati podatke u Excelu pomoću VBA (Korak po korak vodič).

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave