VBA tablice - vrhunski vodič

Ovo je krajnji vodič za rad s tablicama / radnim listovima u Excelu.

Na dnu ovog vodiča stvorili smo listu s uobičajenim naredbama za rad s listovima.

Listovi vs. Radni listovi

Postoje dva načina pozivanja na tablice pomoću VBA. Prvi je s objektom Sheets:

1 Listovi ("List1"). Aktivirajte

Drugi je s objektom Worksheets:

1 Radni listovi ("List1"). Aktivirajte

99% vremena ta su dva objekta identična. Zapravo, ako ste na internetu pretraživali primjere VBA koda, vjerojatno ste vidjeli da se koriste oba objekta. Evo razlike:

Zbirka listova sadrži radne listove i tablice.

Stoga koristite tablice ako želite uključiti redovne radne listove i tablice. Koristite radne listove ako želite isključiti listove grafikona. U ostatku ovog vodiča koristit ćemo tablice i radne listove naizmjenično.

Referentni listovi

Postoji nekoliko različitih načina pozivanja na tablice:

  • ActiveSheet
  • Naziv kartice List
  • Broj indeksa lista
  • Naziv koda lista

ActiveSheet

ActiveSheet je list koji je trenutno aktivan. Drugim riječima, ako ste pauzirali kôd i pogledali Excel, vidljiv je list. U donjem primjeru koda prikazat će se okvir za poruke s imenom ActiveSheet.

1 MsgBox ActiveSheet.Name

Naziv lista

Vjerojatno ste najviše upoznati s upućivanjem na tablice prema nazivu kartice:

1 Tablice ("TabName"). Aktivirajte

Broj indeksa lista

Broj indeksa listova pozicija je lista u radnoj knjizi. 1 je prvi list. 2 je drugi list itd .:

1 Listovi (1) .Aktivirajte

Broj indeksa lista - posljednji list u radnoj bilježnici

Da biste se pozvali na posljednji list u radnoj knjizi, upotrijebite Sheets.Count da biste dobili posljednji broj indeksa:

1 Listovi (Sheets.Count) .Aktivirajte

List "Kodni naziv"

Kodni naziv lista je naziv objekta u VBA -i:

1 CodeName.Aktiviraj

Referentni listovi u drugim radnim bilježnicama

Tablice je također lako uputiti u druge radne knjige. Da biste to učinili, morate koristiti objekt Radne knjige:

1 Radne knjige ("VBA_Examples.xlsm"). Radni listovi ("List1"). Aktivirajte

Važno: Radna knjiga mora biti otvorena da biste se mogli pozvati na njenu tablicu.

Aktiviraj u odnosu na Odaberite List

U drugom članku raspravljamo o aktiviranju i odabiru listova. Kratka verzija je ova:

Kada aktivirate list, on postaje ActiveSheet. Ovo je list koji biste vidjeli da pogledate svoj Excel program. Odjednom se može aktivirati samo jedan list.

Aktivirajte list

1 Listovi ("List1"). Aktivirajte

Kad odaberete list, on postaje i ActiveSheet. Međutim, možete odabrati više listova odjednom. Kada je odabrano više listova odjednom, "gornji" list je ActiveSheet. Međutim, možete prebaciti ActiveSheet unutar odabranih listova.

Odaberite list

1 Listovi ("List 1"). Odaberite

Odaberite Više listova

Pomoću niza odaberite više listova odjednom:

1 Radni listovi (niz ("List2", "List3")). Odaberite

Varijabla radnog lista

Dodjela radnog lista varijabli omogućuje vam upućivanje na radni list prema nazivu varijable. To može uštedjeti mnogo tipkanja i olakšati čitanje vašeg koda. Postoje i mnogi drugi razlozi zbog kojih biste željeli koristiti varijable.

Da biste proglasili varijablu radnog lista:

1 Zatamni ws kao radni list

Dodijelite radni list varijabli:

1 Skup ws = Listovi ("List 1")

Sada se možete pozivati ​​na varijablu radnog lista u svom kodu:

1 ws.Aktiviraj

Prelistajte sve listove u radnoj svesci

Varijable radnog lista bitne su ako želite proći kroz sve radne listove u radnoj knjizi. Najlakši način za to je:

12345 Zatamni kao radni listZa svaki ws u radnim listovimaMsgBox ws.nameSljedeći ws

Ovaj kôd će se provlačiti kroz sve radne listove u radnoj knjizi, prikazujući svaki naziv radnog lista u okviru za poruku. Prelistavanje svih listova u radnoj knjizi vrlo je korisno pri zaključavanju / otključavanju ili skrivanju / otkrivanju više radnih listova odjednom.

Zaštita radnog lista

Zaštita radne knjižice

Zaštita radne knjige zaključava radnu knjigu od strukturnih promjena poput dodavanja, brisanja, premještanja ili skrivanja radnih listova.

Zaštitu radne knjige možete uključiti pomoću VBA:

1 ActiveWorkbook.Protect Password: = "Lozinka"

ili onemogućite zaštitu radne knjige:

1 ActiveWorkbook.UnProtect Lozinka: = "Lozinka"

Napomena: Također možete zaštititi / ukloniti zaštitu bez lozinke izostavljanjem argumenta Lozinka:

1 ActiveWorkbook.Zaštitite

Zaštita radnog lista

Zaštita na razini radnog lista sprječava promjene pojedinačnih radnih listova.

Zaštitite radni list

1 Radni listovi ("List 1"). Zaštitite "Lozinku"

Ukloni zaštitu s radnog lista

1 Radni listovi ("List1"). Uklonite zaštitu "Lozinka"

Postoje različite mogućnosti za zaštitu radnih listova (dopustite promjene u oblikovanju, dopustite korisniku umetanje redaka itd.) Preporučujemo korištenje Makro snimača za snimanje željenih postavki.

Ovdje detaljnije raspravljamo o zaštiti radnog lista.

Radni list Vidljivo svojstvo

Možda već znate da se radni listovi mogu sakriti:

Postoje zapravo tri postavke vidljivosti radnog lista: Vidljivo, Skriveno i Vrlo Skriveno.Skrivene listove može otkriti svaki redoviti korisnik programa Excel - desnim klikom u području kartice radnog lista (prikazano gore). Vrlo skriveni listovi mogu se otkriti samo pomoću VBA koda ili iz VBA uređivača. Upotrijebite sljedeće primjere koda za skrivanje / otkrivanje radnih listova:

Otkrij radni list

1 Radni listovi ("List1"). Vidljiv = xlSheetVisible

Sakrij radni list

1 Radni listovi ("List1"). Visible = xlSheetHidden

Vrlo sakrij radni list

1 Radni listovi ("List1"). Vidljivo = xlSheetVeryHidden

Događaji na razini radnog lista

Događaji su okidači koji mogu uzrokovati pokretanje “Procedura događaja”. Na primjer, možete uzrokovati pokretanje koda svaki put kada se promijeni bilo koja ćelija na radnom listu ili kada je radni list aktiviran.

Postupci događaja na radnom listu moraju se staviti u modul radnog lista:

Brojni su događaji na radnom listu. Da biste vidjeli potpuni popis, idite na modul radnog lista, odaberite "Radni list" iz prvog padajućeg izbornika. Zatim odabirom postupka događaja iz drugog padajućeg izbornika kako biste ga umetnuli u modul.

Radni list Aktiviraj događaj

Događaji za aktiviranje radnog lista pokreću se svaki put kada se radni list otvori.

123 Privatni podradni list_Activate ()Raspon ("A1"). OdaberiteKraj podm

Ovaj će kôd odabrati ćeliju A1 (poništavanje područja prikaza u gornji lijevi dio radnog lista) svaki put kada se radni list otvori.

Događaj promjene radnog lista

Događaji promjene radnog lista pokreću se kad god se promijeni vrijednost ćelije na radnom listu. Za više informacija pročitajte naš vodič o događajima promjene radnog lista.

Radni list Varalica

Dolje ćete pronaći tablicu s uobičajenim primjerima koda za rad s listovima u VBA -i

VBA radni listovi Cheatsheet

VBA radni listovi Cheatsheet
OpisPrimjer koda
Referenciranje i aktiviranje tablica
Naziv karticeTablice ("Unos"). Aktivirajte
VBA kodni nazivList1.Aktiviraj
Indeksni položajListovi (1) .Aktivirajte
Odaberite List
Odaberite ListTablice ("Unos"). Odaberite
Postavite na VariableZatamni kao radni list
Postavite ws = ActiveSheet
Ime / PreimenovanjeActiveSheet.Name = "Novo ime"
Sljedeći listActiveSheet.Next.Activate
Prođite kroz sve listoveZatamni kao radni list
Za svaki ws u radnim listovima
Msgbox ws.name
Sljedeći ws
Prođite kroz odabrane listoveZatamni kao radni list
Za svaki ws u ActiveWindow.SelectedSheets
MsgBox ws.Name
Sljedeći ws
Nabavite ActiveSheetMsgBox ActiveSheet.Name
Dodaj listListovi.Dodaj
Dodajte list i nazivSheets.Add.Name = "Novi list"
Dodajte list s imenom iz ćelijeSheets.Add.Name = range ("a3"). Vrijednost
Dodavanje lista za drugimSheets.Add After: = Sheets ("Unos")
Dodajte list poslije i nazivSheets.Add (After: = Sheets ("Input")). Name = "NewSheet"
Dodajte list prije i nazivSheets.Add (Prije: = Sheets ("Unos")). Name = "NewSheet"
Dodaj list na kraj radne knjigeSheets.Add After: = Sheets (Sheets.Count)
Dodajte list na početak radne knjigeSheets.Add (Prije: = Sheets (1)). Name = "FirstSheet"
Dodaj list varijabliZatamni kao radni list
Postavite ws = Listovi.Dodaj
Kopiraj radne listove
Premjestite list na kraj radne knjigeListovi ("List 1"). Premjesti nakon: = Listovi (Listovi.Broj)
U novu radnu knjiguListovi ("List1"). Kopiraj
Odabrani listovi u novu radnu knjiguActiveWindow.SelectedSheets.Copy
Prije drugog listaListovi ("List 1"). Kopiraj prije: = Listovi ("List 2")
Prije prvog listaListovi ("List 1"). Kopiraj prije: = Listovi (1)
Nakon posljednjeg listaListovi ("List 1"). Kopiraj nakon: = Listovi (Tablice.Broj)
Kopija i imeListovi ("List 1"). Kopiraj nakon: = Listovi (Tablice.Broj)
ActiveSheet.Name = "Zadnji list"
Kopiraj i daj naziv iz vrijednosti ćelijeListovi ("List 1"). Kopiraj nakon: = Listovi (Tablice.Broj)
ActiveSheet.Name = Raspon ("A1"). Vrijednost
U drugu radnu knjiguListovi ("List 1"). Kopiraj prije: = Radne knjige ("Primjer.xlsm"). Listovi (1)
Sakrij / Otkrij listove
Sakrij listTablice ("List1"). Visible = False
ili
Tablice ("List1"). Visible = xlSheetHidden
Otkrij listTablice ("List1"). Vidljivo = Istina
ili
Tablice ("List1"). Vidljivo = xlSheetVisible
Vrlo sakrij listTablice ("List1"). Vidljivo = xlSheetVeryHidden
Brisanje ili brisanje tablica
Izbriši listListovi ("List 1"). Izbrišite
Brisanje lista (rukovanje pogreškama)Uključeno Slijedi nastavak greške
Listovi ("List 1"). Izbrišite
Uključeno Greška Idi na 0
Brisanje lista (bez upita)Application.DisplayAlerts = Netačno
Listovi ("List 1"). Izbrišite
Application.DisplayAlerts = Istina
Čisti listListovi ("List1"). Ćelije.Očisti
Samo čisti sadržaj listaListovi ("List1"). Ćelije.Čisti sadržaj
Clear Sheet UsedRangeListovi ("List1"). UsedRange.Clear
Zaštitite ili uklonite zaštitu listova
Ukloni zaštitu (bez lozinke)Listovi ("List1"). Uklonite zaštitu
Ukloni zaštitu (lozinka)Tablice ("List 1"). Uklonite zaštitu "Lozinka"
Zaštita (bez lozinke)Listovi ("List1"). Zaštitite
Zaštita (lozinka)Listovi ("List 1"). Zaštitite "Lozinku"
Zaštitite, ali dopustite pristup VBAListovi ("List 1"). Zaštitite UserInterfaceOnly: = Tačno
Uklonite zaštitu sa svih tablicaZatamni kao radni list
Za svaki ws u radnim listovima
ws.Unprotect "password"
Sljedeći ws
wave wave wave wave wave