Excel objekti

pojam Excel objekti (široko shvaćen kao Excel objektni model) uključuje elemente koji čine bilo koju Excel radnu knjigu. To su, na primjer, radni listovi (radni list), pojmovi (Rows), kolone (kolumne), rasponi ćelija (rasponi) i sama Excel radna knjiga (Radna sveska) uključujući. Svaki Excel objekt ima skup svojstava koja su sastavni dio njega.

Na primjer, objekt proračunsku tablicu (radni list) ima svojstva Ime (ime), zaštita (zaštita), Vidljivo (vidljivost), Scroll Area (područje za pomicanje) i tako dalje. Dakle, ako je tokom izvršavanja makronaredbe potrebno sakriti radni list, onda je dovoljno promijeniti svojstvo Vidljivo ovaj list.

U Excel VBA postoji posebna vrsta objekata − kolekcija. Kao što ime govori, zbirka se odnosi na grupu (ili kolekciju) Excel objekata. Na primjer, zbirka Rows je objekat koji sadrži sve redove radnog lista.

Svim osnovnim Excel objektima može se pristupiti (direktno ili indirektno) preko objekta radne sveske, koja je zbirka svih trenutno otvorenih radnih knjiga. Svaka radna sveska sadrži objekat listovi je kolekcija koja uključuje sve radne listove i listove grafikona u radnoj knjizi. Svaki objekat proračunsku tablicu sastoji se od kolekcije Rows – uključuje sve redove radnog lista i kolekcije kolumne – sve kolone radnog lista i tako dalje.

Sljedeća tabela navodi neke od najčešće korištenih Excel objekata. Kompletna lista Excel VBA objekata može se pronaći na web lokaciji Microsoft Office Developer (na engleskom).

objektOpis
aplikacijaExcel aplikacija.
radne sveskeKolekcija svih trenutno otvorenih radnih knjiga u trenutnoj Excel aplikaciji. Određenoj radnoj svesci može se pristupiti preko objekta radne sveske koristeći numerički indeks radne knjige ili njen naziv, na primjer, Radne sveske(1) or Radne sveske (“Knjiga1”).
Radna sveskaobjekt Radna sveska je radna sveska. Može se pristupiti preko zbirke radne sveske koristeći numerički indeks ili naziv radne knjige (pogledajte gore). Za pristup trenutno aktivnoj radnoj svesci možete koristiti ActiveWorkbook.

Od objekta Radna sveska može pristupiti objektu listovi, koji je kolekcija svih listova radne knjige (radnih listova i grafikona), plus objekat radni list, što je zbirka svih radnih listova u Excel radnoj knjizi.

listoviobjekt listovije zbirka svih listova u radnoj svesci. To mogu biti ili radni listovi ili grafikoni na posebnom listu. Pristup pojedinačnom listu iz kolekcije listovi može se dobiti pomoću numeričkog indeksa lista ili njegovog naziva, na primjer, plahte(1) or Listovi(«Sheet1»).
radni listobjekt radni list je kolekcija svih radnih listova u radnoj svesci (to jest, svi listovi osim grafikona na posebnom listu). Pristup pojedinačnom radnom listu iz kolekcije radni list može se preuzeti pomoću numeričkog indeksa radnog lista ili njegovog naziva, na primjer, Radni listovi(1) or Radni listovi (“Sheet1”).
proračunsku tablicuobjekt proračunsku tablicu je poseban radni list u Excel radnoj knjizi. Može se pristupiti pomoću numeričkog indeksa radnog lista ili naziva radnog lista (vidi gore).

Osim toga, možete koristiti ActiveSheet za pristup trenutno aktivnom radnom listu. Od objekta proračunsku tablicu može pristupiti objektima Rows и kolumne, koji su kolekcija objekata -, koji se odnosi na redove i kolone radnog lista. Također možete pristupiti jednoj ćeliji ili bilo kojem rasponu susjednih ćelija na radnom listu.

Rowsobjekt Rows je kolekcija svih redova na radnom listu. Objekt -, koji se sastoji od jedne linije radnog lista, može se pristupiti preko tog broja reda, na primjer, redovi(1).
kolumneobjekt kolumne je kolekcija svih kolona radnog lista. Objekt -, koji se sastoji od jedne kolone radnog lista, može se pristupiti po broju tog stupca, na primjer, Kolone(1).
-objekt - je bilo koji broj susjednih ćelija na radnom listu. To može biti jedna ćelija ili sve ćelije lista.

Rasponu koji se sastoji od jedne ćelije može se pristupiti preko objekta proračunsku tablicu korištenje imovine Ćelije. Ćelije.Na primjer, Radni list.Ćelije(1,1).

Na drugi način, referenca na raspon se može napisati specificiranjem adresa početne i završne ćelije. Mogu se pisati sa dvotačkom ili zarezom. Na primjer, Radni list.Raspon(«A1:B10») or Radni list.Raspon(«A1», «B10») or Radni list.Raspon(Ćelije(1,1), Ćelije(10,2)).

Imajte na umu da li je adresa - druga ćelija nije navedena (na primjer, Radni list.Raspon(«A1») or Radni list.Raspon(Ćelije(1,1)), tada će biti odabran raspon koji se sastoji od jedne ćelije.

Gornja tabela pokazuje kako se Excel objektima pristupa preko nadređenih objekata. Na primjer, referenca na raspon ćelija može se napisati ovako:

Radne sveske("Book1").Worksheets("Sheet1").Raspon("A1:B10")

Dodjeljivanje objekta varijabli

U Excel VBA, objekt se može dodijeliti varijabli pomoću ključne riječi Set:

Dim DataWb As Workbook Set DataWb = Workbooks("Kniga1.xlsx")

aktivni objekt

U Excelu u svakom trenutku postoji aktivan objekat Radna sveska da li je radna sveska trenutno otvorena. Slično, postoji aktivan objekat proračunsku tablicu, aktivni objekt - i tako dalje.

Pogledajte aktivni objekt Radna sveska or List u VBA kodu, možete i jedno i drugo ActiveWorkbook or ActiveSheet, i na aktivnom objektu - – Kako dalje izbor.

Ako je referenca na radni list napisana u VBA kodu, bez navođenja kojoj radnoj svesci pripada, onda Excel podrazumevano upućuje na aktivnu radnu svesku. Slično tome, ako se pozivate na raspon bez navođenja određene radne knjige ili lista, Excel će po zadanom postaviti aktivni radni list u aktivnoj radnoj knjizi.

Dakle, da se pozivamo na raspon A1: B10 na aktivnom radnom listu aktivne radne sveske možete jednostavno napisati:

Raspon ("A1:B10")

Promjena aktivnog objekta

Ako je tokom izvršavanja programa potrebno aktivirati drugu radnu knjigu, drugi radni list, opseg i tako dalje, za to morate koristiti metode aktivirati or izabrati Volim ovo:

Sub ActivateAndSelect() Radne sveske("Kniga2").Aktivirajte radne listove("Lista2").Odaberite radne listove("Lista2").Raspon("A1:B10").Odaberite radne listove("Lista2").Raspon("A5") .Aktivirajte End Sub

Objektne metode, uključujući metode koje su upravo korištene aktivirati or izabrati, biće detaljnije razmotreno u nastavku.

Svojstva objekta

Svaki VBA objekat ima postavljena svojstva za njega. Na primjer, objekt Radna sveska ima svojstva Ime (ime), RevisionNumber (broj snimanja), listovi (listovi) i mnogi drugi. Da biste pristupili svojstvima objekta, napišite ime objekta praćeno tačkom nakon čega slijedi naziv svojstva. Na primjer, nazivu aktivne radne knjige može se pristupiti ovako: ActiveWorkbook.Name. Dakle, dodijeliti varijablu wbName naziv aktivne radne knjige, možete koristiti sljedeći kod:

Dim wbName kao string wbName = ActiveWorkbook.Name

Ranije smo pokazali kako je objekat Radna sveska može se koristiti za pristup objektu proračunsku tablicu pomoću ove naredbe:

Radne sveske("Book1").Worksheets("Sheet1")

To je moguće zbog kolekcije radni list je svojstvo objekta Radna sveska.

Neka svojstva objekta su samo za čitanje, što znači da korisnik ne može promijeniti njihove vrijednosti. U isto vrijeme, postoje svojstva kojima se mogu dodijeliti različite vrijednosti. Na primjer, da promijenite naziv aktivnog lista u “Moj radni list“, dovoljno je dodijeliti ovo ime svojstvu Ime aktivni list, ovako:

ActiveSheet.Name = "Moj radni list"

Objekt Methods

VBA objekti imaju metode za izvođenje određenih radnji. Objekt Methods su procedure vezane za objekte određenog tipa. Na primjer, objekt Radna sveska ima metode aktivirati, blizu, Save i još mnogo drugih.

Da biste pozvali metodu na objektu, potrebno je da zapišete ime objekta, tačku i naziv metode. Na primjer, da biste spremili aktivnu radnu knjigu, možete koristiti sljedeći red koda:

ActiveWorkbook.Save

Kao i druge procedure, metode mogu imati argumente koji se prosljeđuju metodi kada se ona pozove. Na primjer, metoda blizu objekt Radna sveska ima tri opciona argumenta koji određuju da li radnu svesku treba sačuvati pre zatvaranja itd.

Da biste prenijeli argumente metodi, morate zabilježiti vrijednosti ovih argumenata odvojene zarezima nakon poziva metode. Na primjer, ako želite da sačuvate aktivnu radnu svesku kao datoteku . Csv sa imenom “Book2”, tada morate pozvati metodu Sačuvaj kao objekt Radna sveska i proslijediti argument filename vrijednost 2. knjiga, i argument FileFormat – značenje xlCSV:

ActiveWorkbook.Save As "Kniga2", xlCSV

Da biste kod učinili čitljivijim, možete koristiti imenovane argumente prilikom pozivanja metode. U ovom slučaju, prvo napišite ime argumenta, a zatim operator dodjeljivanja “:=” nakon čega slijedi vrijednost. Dakle, gornji primjer poziva metode Sačuvaj kao objekt Radna sveska može se napisati drugačije:

ActiveWorkbook.SaveAs Filename:="Kniga2", [FileFormat]:=xlCSV

U Pregledač objekata Visual Basic Editor prikazuje listu svih dostupnih objekata, njihovih svojstava i metoda. Da biste otvorili ovu listu, pokrenite Visual Basic Editor i kliknite F2.

Pogledajmo nekoliko primjera

primjer 1

Ovaj VBA isječak koda može poslužiti kao ilustracija upotrebe petlje Za svaki. U ovom slučaju, koristit ćemo ga da demonstriramo reference objekata. radni list (koji je podrazumevano preuzet iz aktivne radne sveske) i povezuje se sa svakim objektom proračunsku tablicu odvojeno. Imajte na umu da se svojstvo koristi za prikaz imena svakog radnog lista. Ime objekt proračunsku tablicu.

'Skrolujte kroz sve radne listove u aktivnoj radnoj knjizi 'i prikažite okvir za poruku s imenom svakog radnog lista Dim wSheet As Worksheet Za svaki wSheet u radnim listovima MsgBox "Pronađen radni list: " & wSheet.Name Sljedeći wSheet

primjer 2

Ovaj primjer VBA koda pokazuje kako se radnim listovima i rasponima ćelija može pristupiti iz drugih radnih knjiga. Osim toga, pobrinut ćete se da ako referenca na određeni objekt nije navedena, tada se aktivni Excel objekti koriste prema zadanim postavkama. Ovaj primjer pokazuje upotrebu ključne riječi Set da dodijelite objekt varijabli.

U kodu ispod, za objekat - metoda se poziva PasteSpecial. Ova metoda prosljeđuje argument paste vrijednost xlPasteValues.

'Kopirajte raspon ćelija sa lista "Sheet1" druge radne knjige (nazvan Data.xlsx) 'i zalijepite samo vrijednosti u list "Rezultati" trenutne radne knjige (nazvan CurrWb.xlsm) Dim dataWb As Workbook Set dataWb = Workbooks.Open( "C:Data") 'Imajte na umu da je DataWb aktivna radna knjiga. 'Stoga, sljedeća radnja se izvodi na objektu Sheets u DataWb-u. Sheets("Sheet1").Range("A1:B10").Copy 'Zalijepite vrijednosti kopirane iz raspona ćelija u radni list 'Rezultati' trenutne radne knjige. Imajte na umu da CurrWb.xlsm radna knjiga nije 'aktivna' i stoga se mora referencirati. Radne sveske("CurrWb").Sheets("Results").Range("A1").PasteSpecial Paste:=xlPasteValues

primjer 3

Sljedeći VBA isječak koda prikazuje primjer objekta (kolekcije) kolumne i pokazuje kako mu se pristupa iz objekta proračunsku tablicu. Osim toga, vidjet ćete da kada upućujete na ćeliju ili raspon ćelija u aktivnom radnom listu, ne morate se pozivati ​​na taj radni list. Ponovno razmatranje ključne riječi Set, sa kojim je objekt - dodijeljen varijabli okovratnik .

Ovaj VBA kod također pokazuje primjer pristupa svojstvu vrijednost objekt - i mijenjanje njegove vrijednosti.

'Pomoću petlje gledamo vrijednosti u stupcu A na listu "Sheet2", 'izvršavamo aritmetičke operacije sa svakom od njih i upisujemo rezultat 'u stupac A aktivnog radnog lista (Sheet1) Dim i As Integer Dim Col As Range Dim dVal As Double 'Dodijelite varijablu Col kolonu A radnog lista "Sheet2" Postavite Col = Sheets("Sheet2").Columns("A") i = 1 'Pregledavanje svih ćelija kolone Col do 'prazne ćelije naiđe se Do Until IsEmpty(Col. Cells(i)) 'Izvrši aritmetičke operacije na vrijednosti trenutne ćelije dVal = Col.Cells(i).Value * 3 - 1 'Sljedeća naredba upisuje rezultat u kolonu A 'od aktivni list. Nema potrebe uključiti naziv lista u vezu, 'jer je ovo aktivni list u radnoj knjizi. Ćelije(i, 1).Vrijednost = dVal i = i + 1 petlja

Ostavite odgovor