VBA: n With - End With - lohkoa käytetään kertomaan VBA: lle, että aiomme käyttää tiettyä objektia, ja sen tulisi ottaa huomioon annetun objektin ominaisuudet vasta, kun käytämme pisteoperaattoria. Näemme esimerkkejä myöhemmin tässä artikkelissa.
Syntaksi - Lopeta lohkolla
Kun [Object] 'Code to change or use [Object]'- '- Lopeta
Joten nyt kun tiedämme With - End With -lohkon syntaksin, katsotaan sen käyttö.
Esimerkki kanssa - Lopeta lohkolla
Oletetaan, että haluan tehdä useita muutoksia alueeseen A2: A10. Haluan valita tämän alueen, muuttaa sen täyttövärejä, kirjasintyyliä jne. Miten tekisin sen yleensä? Luultavasti näin:
Sub test () Range ("A1: A10"). Valitse Range ("A1: A10"). Interior.ColorIndex = 8 Range ("A1: A10"). Font.Name = "Algerian" Range ("A1: A10") ") .Font.ColorIndex = 12 Range (" A1: A10 "). Font.Underline = xlUnderlineStyleDouble Range (" A1: A10 "). Copy Range (" B1: B10 ") Range (" A1: A10 ") Clear End Sub
Edellä valitaan alue A1: A10. Muuttaa alueen sisävärin väri -indeksi 8. Muuttaa fontin algeriaksi. Muuttaa fontin värin värihakemistoksi 12. Alleviivaa alueen tekstin kaksinkertaisilla alleviivauksilla. Sitten se kopioi alueen A1: A10 saman arkin alueeseen B1: B10. Lopulta se tyhjentää alueen A1: A10.
Voit huomata, että jokaisen toimenpiteen suorittamiseksi alueella A1: A10 meidän on kirjoitettava se joka kerta. Sitten pisteoperaattori pääsee sen ominaisuuksiin. Tämä hidastaa käsittelynopeutta ja lisää VBA -ohjelmoijien työtä. Vaihtoehto tähän on käyttää With -lohkoa: Alla oleva koodi toimii samalla tavalla kuin yllä oleva koodi, mutta nopeammin.
Alatesti () Alueella ("A1: A10") .Valitse .Interior.ColorIndex = 8 .Font.Name = "Algerian" .Font.ColorIndex = 12 .Font.Underline = xlUnderlineStyleDouble .Copy Range ("B1: B10" Tyhjennä loppu End Sub
Katsotaanpa toinen esimerkki.
Jos olet luonut Outlook Mailin objektin, voit alustaa sen kaikki ominaisuudet ja käyttötavat sen avulla.
Set outMail = Outlook.Application.CreateItem (0) OutMail .To = "abcd.mail.com" 'Pakollinen. Tässä määrität kohdepostin tunnuksen… cc = "cc.mail.com" 'valinnainen. Cc -postitunnus, jos haluat… BCC = "bcc.mail.com" 'valinnainen. Piilokopion postitunnus, jos haluat… Aihe = subj 'pitäisi olla. Hieronta postilaatikossa… Keho = viesti 'valinnainen. Hieronta postilaatikossa… Liitteet.Lisää "C: /exceltip.com \ test.xlsx" .Lähetä lopuksi
Kuinka se toimii?
No, kun kirjoitamme With Range ("A1: A10"), vba lukitsee viittauksensa objektialueeseen ("A1: A10"). Joten aina kun kirjoitamme piste (.) -Operaattoria, VBA luettelee kaikki tämän luokan jäsenet, jotka vaikuttavat vain objektialueeseen ("A1: A10") tai mihin tahansa mainitsemaasi objektiin. Viitelukko vapautuu, kun VBA lukee End With -lausekkeen.
Sisältää lohkoja
Meillä voi olla lohko toisen lohkon sisällä. Yllä olevassa esimerkissä käytimme alueobjektia sen valitsemiseksi. Sitten käytimme Range.Fontia useita kertoja fonttien käsittelyyn. Tämä on toistuvaa. Yllä oleva koodi voidaan kirjoittaa myös näin:
Alatesti () Alueella ("A1: A10") .Valitse .Interior.ColorIndex = 8 'Toisen käyttäminen lohkolla, jossa on .Font .Name = "Algerian" .ColorIndex = 12 .Underline = xlUnderlineStyleDouble End with .Copy Alue ("B1: B10"). Tyhjennä pää ja alaosa
Sisäisen lohkon tulisi viitata kohteeseen, joka on ulkoisen objektin alijäsen. Voimme viitata ulkoiseen esineenä esineellä ja sisäiseen kanssa kuin lapsen kanssa. Kun aloitat sisältä, kohde tulee kirjoittaa edellisen pisteoperaattorin kanssa.
Kun olet lapsi, et voi käyttää vanhempiominaisuuksia. Esimerkiksi alla oleva koodi on väärä.
Alatesti () Alueella ("A1: A10") .Valitse .Interior.ColorIndex = 8 'Toisen käyttäminen lohkolla, jossa on .Font .Name = "Algerian" .ColorIndex = 12 .Underline = xlUnderlineStyleDouble' Alla oleva koodi tuottaa virheen, koska kopiointi- ja tyhjennysmenetelmät eivät kuulu kirjasinluokkaan… Kopiointialue ("B1: B10") .Clear End With End With End Sub
Täysin pätevä lohkolla
Jos haluan tehdä muutoksia työkirjan sisältävän koodin arkin 2 alueen A1: A10 fonttiin, meidän on käytettävä täysin pätevää lohkoa.
Alla olevat kaksi koodia toimivat samalla tavalla.
Alatesti2 () tämän työkirjan kanssa .Sheets ("Sheet2"), jossa .Range ("A1: A10"). Sub
'Täysin pätevä lohkolla Sub test3 () ThisWorkbook.Sheets ("Shee2"). Alue ("A1: A10"). Fontti .Name = "Algerian" .ColorIndex = 12 .Underline = xlUnderlineStyleDouble End With End Sub
Voit nähdä eron. Joten kun tiedät, että aiot käyttää useita menetelmiä ja ominaisuuksia objektista, anna alussa täydellinen nimi. Jos aiot käyttää aliobjekteja, käytä edellistä lähestymistapaa. Kokeneet ohjelmoijat käyttävät molempia menetelmiä sopivissa tilanteissa.
Joten kyllä kaverit, näin käytämme With - End With blockia VBA: ssa. Toivottavasti olin tarpeeksi selittävä ja tämä artikkeli auttoi sinua ymmärtämään käsitteen With - End With. Jos sinulla on epäilyksiä tästä artikkelista tai muista aiheista, kysy minulta alla olevasta kommenttiosasta. Autan sinua mielelläni.
VBA -muuttujat Excelissä| VBA tarkoittaa Visual Basic for Applications. Se on Microsoftin ohjelmointikieli. Sitä käytetään Microsoft Office -sovelluksissa, kuten MSExcel, MS-Word ja MS-Access, kun taas VBA-muuttujat ovat erityisiä avainsanoja.
Excel VBA -muuttujan laajuus| Kaikilla ohjelmointikielillä on muuttujan käyttöoikeusmäärittelyt, jotka määrittävät, mistä määriteltyä muuttujaa voidaan käyttää. Excel VBA ei ole poikkeus. Myös VBA: ssa on laajuuden määrittäjiä.
ByRef- ja ByVal -argumentit | Kun argumentti välitetään ByRef -argumenttina toiselle ala- tai funktiolle, todellisen muuttujan viite lähetetään. Kaikki muuttujan kopioon tehdyt muutokset näkyvät alkuperäisessä argumentissa.
Poista taulukot ilman vahvistuskehotteita käyttämällä VBA: ta Microsoft Excelissä | Koska poistat arkkeja VBA: n avulla, tiedät mitä olet tekemässä. Haluat kertoa Excelille, ettei se näytä tätä varoitusta ja poista kirottu arkki.
Lisää ja tallenna uusi työkirja VBA: n avulla Microsoft Excel 2016: ssa| Tässä koodissa loimme ensin viittauksen työkirjaobjektiin. Ja sitten alustimme sen uudella työkirjaobjektilla. Tämän lähestymistavan etuna on, että voit tehdä tämän uuden työkirjan toimintoja helposti. Kuten tallentaminen, sulkeminen, poistaminen jne
Näytä viesti Excel VBA -tilapalkissa| Excelin tilariviä voidaan käyttää koodinäytönä. Kun VBA -koodisi on pitkä ja teet useita tehtäviä VBA: n avulla, poistat usein näytön päivityksen käytöstä, jotta et näe sitä välkkyvää.
Poista varoitusviestit käytöstä VBA: n avulla Microsoft Excel 2016: ssa| Tämä koodi ei vain poista VBA -hälytyksiä käytöstä, vaan myös lisää koodin aikatehokkuutta. Katsotaanpa miten.
Suosittuja artikkeleita:
50 Excel -pikanäppäintä tuottavuuden lisäämiseksi | Nopeuta tehtävääsi. Nämä 50 pikanäppäintä tekevät työskentelystäsi entistä nopeampaa Excelissä.
VLOOKUP -toiminto Excelissä | Tämä on yksi eniten käytetyistä ja suosituimmista Excel -toiminnoista, jota käytetään arvon etsimiseen eri alueilta ja arkeilta.
COUNTIF Excel 2016: ssa | Laske arvot olosuhteilla käyttämällä tätä hämmästyttävää toimintoa. Sinun ei tarvitse suodattaa tietoja laskeaksesi tiettyjä arvoja. Laskutoiminto on välttämätön kojelaudan valmistelemiseksi.
SUMIF -toiminnon käyttäminen Excelissä | Tämä on toinen kojelaudan olennainen toiminto. Tämä auttaa sinua laskemaan yhteen arvot tietyissä olosuhteissa.