VBA Sheets - lopullinen opas

Tämä on lopullinen opas Sheetsin / laskentataulukoiden käyttämiseen Excelissä.

Tämän oppaan alareunaan olemme luoneet huijausarkin, jossa on yleisiä komentoja arkkien käsittelyyn.

Arkit Vs. Laskentataulukot

Arkeille voi viitata kahdella tavalla käyttämällä VBA: ta. Ensimmäinen koskee Sheets -objektia:

1 Sheets ("Sheet1"). Aktivoi

Toinen on Worksheets -objektin kanssa:

1 Laskentataulukot ("Sheet1"). Aktivoi

99% ajasta nämä kaksi kohdetta ovat identtisiä. Itse asiassa, jos olet hakenut VBA -koodiesimerkkejä verkossa, olet todennäköisesti nähnyt molemmat käytetyt objektit. Tässä on ero:

Sheets -kokoelma sisältää laskentataulukoita ja kaavioarkkeja.

Käytä siis Sheetsia, jos haluat sisällyttää tavalliset laskentataulukot JA kaavioarkit. Käytä laskentataulukoita, jos haluat sulkea kaavioarkit pois. Tässä oppaassa käytämme taulukkoja ja laskentataulukoita keskenään.

Viittausarkit

Taulukoihin voi viitata useilla eri tavoilla:

  • ActiveSheet
  • Arkki -välilehden nimi
  • Arkkiindeksinumero
  • Taulukon koodinimi

ActiveSheet

ActiveSheet on tällä hetkellä aktiivinen taulukko. Toisin sanoen, jos keskeytit koodisi ja katsoit Exceliä, se on arkki, joka näkyy. Alla oleva esimerkki näyttää viestilaatikon ActiveSheet -nimellä.

1 MsgBox ActiveSheet.Name

Arkin nimi

Olet luultavasti parhaiten tietoinen Sheetsin viittaamisesta niiden välilehden nimen perusteella:

1 Sheets ("TabName"). Aktivoi

Arkkiindeksinumero

Arkki -indeksinumero on työkirjan arkin sijainti. 1 on ensimmäinen arkki. 2 on toinen arkki jne.:

1 Arkit (1) Aktivoi

Taulukon hakemistonumero - työkirjan viimeinen arkki

Jos haluat viitata työkirjan viimeiseen taulukkoon, käytä Sheets.Count saadaksesi viimeisen hakemistonumeron:

1 Arkit (Sheets.Count) Aktivoi

Taulukko "Koodin nimi"

Sheet Code Name on sen objektin nimi VBA: ssa:

1 Koodinimi Aktivoi

Viittausarkit muissa työkirjoissa

Sheetsiin on myös helppo viitata muissa työkirjoissa. Tätä varten sinun on käytettävä Työkirjat -objektia:

1 Työkirjat ("VBA_Examples.xlsm"). Laskentataulukot ("Sheet1"). Aktivoi

Tärkeä: Työkirjan on oltava auki, ennen kuin voit viitata sen Sheetsiin.

Aktivoi vs. valitse Arkki

Toisessa artikkelissa keskustelemme kaikesta arkkien aktivoimisesta ja valitsemisesta. Lyhyt versio on tämä:

Kun aktivoit taulukon, siitä tulee ActiveSheet. Tämä on taulukko, jonka näet, jos katsot Excel -ohjelmaa. Vain yksi arkki voidaan aktivoida kerrallaan.

Aktivoi taulukko

1 Sheets ("Sheet1"). Aktivoi

Kun valitset taulukon, siitä tulee myös ActiveSheet. Voit kuitenkin valita useita arkkeja kerralla. Kun useita arkkeja valitaan kerralla, "ylä" -arkki on ActiveSheet. Voit kuitenkin vaihtaa ActiveSheetin valittujen arkkien sisällä.

Valitse arkki

1 Sheets ("Sheet1"). Valitse

Valitse Useita arkkeja

Valitse taulukon avulla useita arkkeja kerralla:

1 Laskentataulukot (Array ("Sheet2", "Sheet3")). Valitse

Laskentataulukon muuttuja

Kun määrität laskentataulukon muuttujalle, voit viitata laskentataulukkoon sen muuttujan nimen perusteella. Tämä voi säästää paljon kirjoittamista ja helpottaa koodin lukemista. On myös monia muita syitä, miksi haluat käyttää muuttujia.

Laskentataulukon muuttujan ilmoittaminen:

1 Dim ws laskentataulukkona

Laskentataulukon määrittäminen muuttujaan:

1 Aseta ws = Sheets ("Sheet1")

Nyt voit viitata koodin laskentataulukon muuttujaan:

1 ws. aktivoi

Käy läpi kaikki työkirjan arkit

Laskentataulukon muuttujat ovat välttämättömiä, kun haluat selata kaikkia työkirjan laskentataulukoita. Helpoin tapa tehdä tämä on:

12345 Dim ws kuin laskentataulukkoJokaiselle ws: lle laskentataulukoissaMsgBox ws.nameSeuraava ws

Tämä koodi kiertää kaikki työkirjan laskentataulukot ja näyttää kunkin laskentataulukon nimen viestiruudussa. Työkirjan kaikkien arkkien selaaminen on erittäin hyödyllistä, kun lukitaan / avataan tai piilotetaan / avataan useita laskentataulukoita kerralla.

Laskentataulukon suojaus

Työkirjan suojaus

Työkirjan suojaus lukitsee työkirjan rakenteellisilta muutoksilta, kuten laskentataulukoiden lisäämiseltä, poistamiselta, siirtämiseltä tai piilottamiselta.

Voit ottaa työkirjan suojauksen käyttöön VBA: n avulla:

1 ActiveWorkbook.Protect Password: = "Salasana"

tai poista työkirjan suojaus käytöstä:

1 ActiveWorkbook.UnProtect Password: = "Salasana"

Huomautus: Voit suojata / poistaa suojauksen myös ilman salasanaa jättämällä Salasana -argumentin pois:

1 ActiveWorkbook.Protect

Laskentataulukon suojaus

Laskentataulukkotason suojaus estää yksittäisten laskentataulukoiden muuttamisen.

Suojaa laskentataulukko

1 Laskentataulukot ("Sheet1"). Suojaa salasana

Poista laskentataulukon suojaus

1 Laskentataulukot ("Sheet1"). Poista salasanan suojaus

Laskentataulukoiden suojaamisessa on useita vaihtoehtoja (salli muotoilumuutokset, salli käyttäjän lisätä rivejä jne.). Suosittelemme käyttämään makrotallenninta haluttujen asetusten tallentamiseen.

Keskustelemme laskentataulukon suojaamisesta tarkemmin täällä.

Laskentataulukon näkyvä ominaisuus

Saatat jo tietää, että laskentataulukot voidaan piilottaa:

Laskentataulukon näkyvyysasetuksia on itse asiassa kolme: Näkyvä, Piilotettu ja Erittäin piilotettu.Kuka tahansa tavallinen Excel -käyttäjä voi avata piilotetut taulukot - napsauttamalla hiiren kakkospainikkeella laskentataulukon välilehteä (yllä). VeryHidden -arkit voidaan avata vain VBA -koodilla tai VBA -editorissa. Käytä seuraavia koodiesimerkkejä laskentataulukoiden piilottamiseen / näyttämiseen:

Näytä työkirja

1 Laskentataulukot ("Sheet1"). Visible = xlSheetVisible

Piilota laskentataulukko

1 Laskentataulukot ("Sheet1"). Látható = xlSheetHidden

Erittäin piilota laskentataulukko

1 Laskentataulukot ("Sheet1"). Visible = xlSheetVeryHidden

Laskentataulukotason tapahtumat

Tapahtumat ovat laukaisimia, jotka voivat aiheuttaa tapahtumatoimenpiteiden suorittamisen. Voit esimerkiksi saada koodin toimimaan joka kerta, kun laskentataulukon solua muutetaan tai kun laskentataulukko aktivoidaan.

Laskentataulukon tapahtumamenettelyt on sijoitettava laskentataulukkomoduuliin:

Laskentataulukon tapahtumia on lukuisia. Jos haluat nähdä täydellisen luettelon, siirry laskentataulukkomoduuliin ja valitse ensimmäisestä avattavasta valikosta "Työarkki". Valitse sitten tapahtumatoiminto toisesta avattavasta valikosta lisätäksesi se moduuliin.

Laskentataulukko Aktivoi tapahtuma

Laskentataulukon aktivointitapahtumat suoritetaan joka kerta, kun laskentataulukko avataan.

123 Yksityinen alityöarkki_Activate ()Alue ("A1"). ValitseEnd Sub

Tämä koodi valitsee solun A1 (palauttaa näkymäalueen laskentataulukon vasempaan yläkulmaan) joka kerta, kun laskentataulukko avataan.

Laskentataulukon muutostapahtuma

Laskentataulukon muutostapahtumat suoritetaan aina, kun laskentataulukon solun arvoa muutetaan. Lue opetusohjelmamme laskentataulukon muutostapahtumista saadaksesi lisätietoja.

Tehtäväarkki Huijausarkki

Alta löydät huijausarkin, joka sisältää yleisiä koodiesimerkkejä arkkien käsittelyyn VBA: ssa

VBA Worksheets Cheatsheet

VBA -laskentataulukot Cheatsheet
KuvausEsimerkki koodista
Viittaavat ja aktivoivat taulukot
Välilehden nimiSheets ("Input"). Aktivoi
VBA -koodinimiArkki 1.Aktivoi
Indeksin sijaintiArkit (1) Aktivoi
Valitse Arkki
Valitse ArkkiSheets ("Input"). Valitse
Aseta muuttujaksiDim ws kuin laskentataulukko
Aseta ws = ActiveSheet
Nimi / Nimeä uudelleenActiveSheet.Name = "UusiNimi"
Seuraava arkkiActiveSheet.Next.Activate
Selaa kaikki arkit läpiDim ws kuin laskentataulukko
Jokaiselle työkirjan w: lle
Msgbox ws.name
Seuraava ws
Selaa valittuja arkkejaDim ws laskentataulukkona
Jokaiselle ActiveWindow.SelectedSheets -sivulle
MsgBox ws.Name
Seuraava ws
Hanki ActiveSheetMsgBox ActiveSheet.Name
Lisää taulukkoArkit Lisää
Lisää arkki ja nimiSheets.Add.Name = "NewSheet"
Lisää taulukko, jonka nimi on solustaSheets.Add.Name = alue ("a3")
Lisää arkki toisen jälkeenSheets.Add After: = Sheets ("Input")
Lisää arkki nimen ja nimen jälkeenSheets.Add (After: = Sheets ("Input")). Name = "NewSheet"
Lisää arkki ennen ja nimiSheets.Add (Ennen: = Sheets ("Input")). Name = "NewSheet"
Lisää taulukko työkirjan loppuunSheets.Add After: = Sheets (Sheets.Count)
Lisää taulukko työkirjan alkuunSheets.Add (Ennen: = Sheets (1)). Name = "FirstSheet"
Lisää taulukko muuttujaanDim ws laskentataulukkona
Aseta ws = Sheets.Add
Kopioi laskentataulukot
Siirrä taulukko työkirjan loppuunSheets ("Sheet1"). Siirrä jälkeen: = Sheets (Sheets.Count)
Uuteen työkirjaanSheets ("Sheet1"). Kopio
Valitut taulukot uuteen työkirjaanActiveWindow.SelectedSheets.Copy
Ennen toista arkkiaSheets ("Sheet1"). Kopioi ennen: = Sheets ("Sheet2")
Ennen ensimmäistä arkkiaSheets ("Sheet1"). Kopioi ennen: = Sheets (1)
Viimeisen arkin jälkeenSheets ("Sheet1"). Kopioi jälkeen: = Sheets (Sheets.Count)
Kopioi ja NimiSheets ("Sheet1"). Kopioi jälkeen: = Sheets (Sheets.Count)
ActiveSheet.Name = "LastSheet"
Kopioi ja nimi solun arvostaSheets ("Sheet1"). Kopioi jälkeen: = Sheets (Sheets.Count)
ActiveSheet.Name = Alue ("A1"). Arvo
Toiseen työkirjaanSheets ("Sheet1"). Copy Before: = Työkirjat ("Example.xlsm"). Sheets (1)
Piilota / näytä taulukot
Piilota taulukkoSheets ("Sheet1"). Látható = False
tai
Sheets ("Sheet1"). Látható = xlSheetHidden
Näytä arkkiSheets ("Sheet1"). Visible = True
tai
Sheets ("Sheet1"). Visible = xlSheetVisible
Erittäin piilotettu arkkiSheets (“Sheet1”). Visible = xlSheetVeryHidden
Poista tai Tyhjennä taulukot
Poista taulukkoSheets ("Sheet1"). Poista
Poista taulukko (virheen käsittely)Virhe Jatka seuraavaksi
Sheets ("Sheet1"). Poista
Virhe GoTo 0
Poista taulukko (ei kehotetta)Application.DisplayAlerts = Väärä
Sheets ("Sheet1"). Poista
Application.DisplayAlerts = Totta
Kirkas arkkiSheets ("Sheet1"). Cells.Clear
Vain arkin sisältöSheets ("Sheet1"). Cells.ClearContents
Kirkas arkki Käytetty alueSheets ("Sheet1"). UsedRange.Clear
Suojaa tai poista suojaus
Poista suojaus (ei salasanaa)Sheets ("Sheet1"). Poista suojaus
Poista suojaus (salasana)Sheets ("Sheet1"). Poista salasanan suojaus
Suojaa (ei salasanaa)Sheets ("Sheet1"). Suojaa
Suojaa (salasana)Sheets ("Sheet1"). Suojaa salasana
Suojaa, mutta salli VBA -käyttöSheets ("Sheet1"). Suojaa UserInterfaceOnly: = True
Poista kaikkien arkkien suojausDim ws laskentataulukkona
Jokaiselle viikolle laskentataulukoissa
ws.Suojaa salasana
Seuraava ws
wave wave wave wave wave