Blokas „With - End With“ VBA naudojamas pranešti VBA, kad mes naudosime nurodytą objektą, ir jis turėtų atsižvelgti į duoto objekto savybes tik tada, kai naudosime taško operatorių. Pavyzdžius pamatysime vėliau šiame straipsnyje.
Sintaksė su - pabaiga su bloku
Su [Object] 'kodu, kad pakeistumėte arba naudotumėte [Object]'- '- Pabaiga su
Taigi dabar, kai žinome „With - End With“ sintaksę, pažiūrėkime, kaip jis naudojamas.
Pavyzdys su - pabaiga su bloku
Tarkime, noriu atlikti kelis A2: A10 diapazono pakeitimus. Noriu pasirinkti šį diapazoną, pakeisti jo užpildymo spalvas, šrifto stilių ir pan. Kaip tai padaryti apskritai? Tikriausiai taip:
Sub test () Diapazonas („A1: A10“). Pasirinkite diapazoną („A1: A10“). Interior.ColorIndex = 8 Diapazonas („A1: A10“). Font.Name = „Alžyro“ diapazonas („A1: A10“) ") .Font.ColorIndex = 12 diapazonas (" A1: A10 "). Font.Underline = xlUnderlineStyleDouble Range (" A1: A10 "). Copy Range (" B1: B10 ") Range (" A1: A10 "). Clear Pabaiga Sub
Anksčiau pasirenkamas diapazonas A1: A10. Pakeičia diapazono vidinę spalvą į spalvų indeksą 8. Pakeičia šriftą į alžyrų. Pakeičia šrifto spalvą į spalvų rodyklę 12. Pabrėžkite diapazono tekstą dvigubu pabraukimu. Tada jis nukopijuoja diapazoną A1: A10 į to paties lapo diapazoną B1: B10. Pagaliau išvalomas diapazonas A1: A10.
Galite pastebėti, kad norėdami atlikti kiekvieną operaciją su diapazonu A1: A10, mes turime tai parašyti kiekvieną kartą. Tada taškų operatorius pasiekia savo savybes. Tai sumažina apdorojimo greitį ir padidina VBA programuotojų išlaidas. Alternatyva tai padaryti yra naudojant bloką Su: Žemiau pateiktas kodas veikia taip pat, kaip ir anksčiau pateiktas kodas, bet greičiau.
Antrinis testas () Su diapazonu ("A1: A10"). Pasirinkite .Interior.ColorIndex = 8 .Font.Name = "Algerian" .Font.ColorIndex = 12 .Font.Underline = xlUnderlineStyleDouble .Copy Range ("B1: B10") ). Aiškus galas su pabaiga Sub
Pažiūrėkime kitą pavyzdį.
Jei sukūrėte „Outlook Mail“ objektą, galite jį naudoti norėdami inicijuoti visas jo savybes ir naudoti metodus.
Nustatykite outMail = Outlook.Application.CreateItem (0) Su outMail .To = "abcd.mail.com" 'Privaloma. Čia apibrėžiate paskirties pašto ID… cc = "cc.mail.com" 'neprivaloma. Cc pašto ID, jei norite… BCC = "bcc.mail.com" 'neprivaloma. Bcc pašto ID, jei norite … Subject = subj 'turėtų būti. Masažas ant pašto kūno… Kūnas = žinutė 'neprivaloma. Pašto kūno masažas… Priedai. Pridėkite „C: /exceltip.com \ test.xlsx“. Siųsti pabaigą
Kaip tai veikia?
Na, kai rašome su diapazonu („A1: A10“), vba užrakina savo nuorodą į objektų diapazoną („A1: A10“). Taigi, kai rašome taško (.) Operatorių, VBA pateikia visus šios diapazono klasės narius, kurie paveiks tik objekto diapazoną („A1: A10“) arba bet kurį jūsų paminėtą objektą. Nuorodų užraktas atleidžiamas, kai VBA nuskaito „End With“ teiginį.
Įdėtas su blokais
Mes galime turėti bloką kitame bloke. Pirmiau pateiktame pavyzdyje mes pasirinkome diapazono objektą. Tada kelis kartus naudojome „Range.Font“, kad galėtume dirbti su šriftais. Tai vėl kartojasi. Aukščiau pateiktas kodas taip pat gali būti parašytas taip:
Antrinis testas () Su diapazonu („A1: A10“). Pasirinkite .Interior.ColorIndex = 8 'Naudojant kitą su „With Block With .Font .Name =" Algerian ".ColorIndex = 12 .Underline = xlUnderlineStyleDouble End with .Copy Diapazonas („B1: B10“). Aiškus galas su pabaiga
Vidinis su bloku turėtų būti susijęs su objektu, kuris yra išorinio objekto antrinis narys. Išorinį galime vadinti objektu, o vidinį - kaip vaiką. Kai pradedate nuo vidinio, objektas turi būti parašytas naudojant ankstesnį taškų operatorių.
Kai esate vaikas, negalite pasiekti konkrečių tėvų savybių. Pavyzdžiui, žemiau pateiktas kodas yra neteisingas.
Antrinis testas () Su diapazonu („A1: A10“). Pasirinkite .Interior.ColorIndex = 8 'Naudojant kitą su „With Block With .Font .Name =" Algerian ".ColorIndex = 12 .Underline = xlUnderlineStyleDouble' Žemiau pateiktas kodas sukurs klaidą, nes kopijavimo ir išvalymo metodai nepriklauso šriftų klasei … Kopijavimo diapazonas ("B1: B10"). Išvalyti pabaigą su pabaiga su pabaiga
Visiškai kvalifikuotas su bloku
Jei noriu atlikti pakeitimus su kodo, kuriame yra darbaknygė, 2 lapo A1: A10 šriftu, turėtume naudoti visiškai kvalifikuotą bloką.
Toliau pateikti du kodai veiks vienodai.
Antrasis testas 2 () naudojant šią darbo knygą su .Sheets ("Sheet2") su .Range ("A1: A10") su .Font .Name = "Algerian" .ColorIndex = 12 .Underline = xlUnderlineStyleDouble End With End With End with End with End Sub
'Visiškai kvalifikuotas su bloko Sub test3 () naudojant šią darbo knygą. Skaičiuoklės ("Shee2"). Diapazonas ("A1: A10"). Šriftas .Name = "Alžyro" .ColorIndex = 12 .Underline = xlUnderlineStyleDouble End With End Sub
Jūs galite pamatyti skirtumą. Taigi, kai žinote, kad ketinate naudoti kelis metodus ir objekto savybes, pradžioje nurodykite visiškai kvalifikuotą pavadinimą. Jei naudosite antrinius objektus, naudokite ankstesnį metodą. Patyrę programuotojai naudoja abu metodus tinkamose situacijose.
Taigi taip, vaikinai, šitaip mes naudojame „With - End With“ bloką VBA. Tikiuosi, kad buvau pakankamai aiškus ir šis straipsnis padėjo jums suprasti sąvoką „Su - pabaiga“. Jei turite kokių nors abejonių dėl šio straipsnio ar kitos temos, paklauskite manęs komentarų skiltyje žemiau. Aš mielai jums padėsiu.
VBA kintamieji „Excel“| VBA reiškia „Visual Basic for Applications“. Tai programavimo kalba iš „Microsoft“. Jis naudojamas su „Microsoft Office“ programomis, tokiomis kaip „MSExcel“, „MS-Word“ ir „MS-Access“, tuo tarpu VBA kintamieji yra konkretūs raktiniai žodžiai.
„Excel VBA“ kintamoji apimtis| Visose programavimo kalbose mes turime kintamosios prieigos specifikatorius, kurie apibrėžia, iš kur galima pasiekti apibrėžtą kintamąjį. „Excel VBA“ nėra išimtis. VBA taip pat turi apimties specifikacijas.
ByRef ir ByVal argumentai | Kai argumentas perduodamas kaip „ByRef“ argumentas kitam padaliniui ar funkcijai, siunčiama tikrojo kintamojo nuoroda. Bet kokie kintamojo kopijos pakeitimai atsispindės pradiniame argumente.
Ištrinkite lapus be patvirtinimo raginimų naudodami „Microsoft Excel“ VBA | Kadangi trinate lapus naudodami VBA, žinote, ką darote. Norite pasakyti „Excel“ nerodyti šio įspėjimo ir ištrinti prakeiktą lapą.
Pridėkite ir išsaugokite naują darbaknygę naudodami „Microsoft Excel 2016“ VBA| Šiame kode pirmiausia sukūrėme nuorodą į darbaknygės objektą. Ir tada mes jį inicijavome naudodami naują darbo knygos objektą. Šio metodo pranašumas yra tas, kad galite lengvai atlikti operacijas su šia nauja darbaknyge. Kaip išsaugoti, uždaryti, ištrinti ir pan
Rodyti pranešimą „Excel“ VBA būsenos juostoje| „Excel“ būsenos juosta gali būti naudojama kaip kodo monitorius. Kai jūsų VBA kodas yra ilgas ir atliekate kelias užduotis naudodami VBA, dažnai išjungiate ekrano atnaujinimą, kad nematytumėte to ekrano mirgėjimo.
Išjunkite įspėjamuosius pranešimus naudodami VBA programoje „Microsoft Excel 2016“| Šis kodas ne tik išjungia VBA įspėjimus, bet ir padidina kodo laiko efektyvumą. Pažiūrėkime, kaip.
Populiarūs straipsniai:
50 „Excel“ nuorodų, skirtų produktyvumui padidinti | Greičiau atlikite savo užduotį. Šie 50 sparčiųjų klavišų leis dar greičiau dirbti naudojant „Excel“.
„VLOOKUP“ funkcija „Excel“ | Tai yra viena iš dažniausiai naudojamų ir populiariausių „Excel“ funkcijų, naudojama norint ieškoti vertės iš įvairių diapazonų ir lapų.
COUNTIF „Excel 2016“ | Naudodami šią nuostabią funkciją, suskaičiuokite reikšmes su sąlygomis. Norint suskaičiuoti konkrečias vertes, nereikia filtruoti duomenų. Skaitiklio funkcija yra būtina norint paruošti prietaisų skydelį.
Kaip naudoti „SUMIF“ funkciją „Excel“ | Tai dar viena esminė prietaisų skydelio funkcija. Tai padeda apibendrinti vertes konkrečiomis sąlygomis.