Kako uporabljati z… Konec z blokom v VBA Excelu?

Kazalo:

Anonim

Blok With - End With v VBA se uporablja za povedo VBA, da bomo uporabili dani predmet, in mora upoštevati lastnosti danega predmeta šele, ko uporabimo operater pike. V nadaljevanju tega članka bomo videli primere.

Sintaksa z - Končaj z blokom

Z [Object] 'Code za spremembo ali uporabo [Object]'- '- Končaj z 

Zdaj, ko poznamo skladnjo bloka With - End With, poglejmo njegovo uporabo.

Primer z - Končaj z blokom

Recimo, da želim narediti nekaj sprememb v razponu A2: A10. Želim izbrati ta obseg, spremeniti barve polnila, slog pisave itd. Kako bi to storil na splošno? Verjetno takole:

Podskup () Območje ("A1: A10"). Izberite obseg ("A1: A10"). Notranje.Imenovanje barv = 8 Razpon ("A1: A10"). Font.Name = "Alžirski" obseg ("A1: A10" ") .Font.ColorIndex = 12 Range (" A1: A10 "). Font.Underline = xlUnderlineStyleDouble Range (" A1: A10 "). Copy Range (" B1: B10 ") Range (" A1: A10 "). Clear End Sub 

Zgornje izbere območje A1: A10. Notranjo barvo obsega spremeni v barvni indeks 8. Pisavo spremeni v alžirsko. Barvo pisave spremeni v barvni indeks 12. Besedilo v obsegu podčrta z dvojnimi podčrtaji. Nato kopira obseg A1: A10 v obseg B1: B10 istega lista. Nazadnje počisti območje A1: A10.

Opazite lahko, da moramo to narediti za vsako operacijo z obsegom A1: A10. Nato operater pik dostopa do njegovih lastnosti. To zmanjšuje hitrost obdelave in povečuje stroške dela programerjem VBA. Alternativa za to je uporaba bloka With: Spodnja koda deluje enako kot zgornja koda, vendar hitreje.

Pod test () z obsegom ("A1: A10"). Izberite .Interior.ColorIndex = 8 .Font.Name = "Algerian". Font.ColorIndex = 12 .Font.Underline = xlUnderlineStyleDouble .Copy Range ("B1: B10" Počisti konec s končnico Sub 


Poglejmo še en primer.

Če ste ustvarili objekt Outlook Mail, lahko s tem predmetom inicializirate vse njegove lastnosti in uporabite metode.

Set outMail = Outlook.Application.CreateItem (0) Z outMail .To = "abcd.mail.com" 'Obvezno. Tukaj določite ID ciljne pošte … cc = "cc.mail.com" 'neobvezno. ID poštne kopije, če želite … BCC = "bcc.mail.com" 'neobvezno. ID skp pošte, če želite … Subject = subj 'bi moral imeti. Masaža po pošti … Body = msg 'neobvezno. Masaža na telesu pošte … Priloge. Dodajte "C: /exceltip.com \ test.xlsx". Pošlji konec z 

Kako deluje?

No, ko pišemo z razponom ("A1: A10"), vba zaklene svojo referenco na obseg objektov ("A1: A10"). Torej, kadar napišemo operator dot (.), VBA navede vse člane tega razreda obsega, ki bodo vplivali samo na Range objekta ("A1: A10") ali kateri koli predmet, ki ste ga omenili. Referenčna ključavnica se sprosti, ko VBA prebere stavek End With.

Ugnezdeno z bloki

Lahko imamo blok v drugem bloku. V zgornjem primeru smo za izbiro uporabili objekt obsega. Nato smo večkrat uporabili Range.Font za delo s pisavami. To se spet ponavlja. Zgornjo kodo lahko zapišemo tudi tako:

Pod test () Z obsegom ("A1: A10"). Izberite .Interior.ColorIndex = 8 'Uporaba drugega With v bloku With With. Font .Name = "Alžirec" .ColorIndex = 12. Underline = xlUnderlineStyleDouble End With .Copy Obseg ("B1: B10"). Počisti konec s konč 

Notranji blok se mora sklicevati na predmet, ki je podčlen zunanjega predmeta. Zunanjega s lahko označujemo kot predmet z in notranje S kot otroka s. Ko začnete notranje s, mora biti objekt zapisan s predhodnim operatorjem pik.

Ko ste otrok, ne morete dostopati do lastnosti, specifičnih za starše. Spodnja koda je na primer napačna.

Podtest () Z obsegom ("A1: A10"). Izberite .Interior.ColorIndex = 8 'Uporaba drugega With v bloku With With. Font .Name = "Alžirec" .ColorIndex = 12. Underline = xlUnderlineStyleDouble' Spodnja koda bo generiral napako, ker metode kopiranja in brisanja ne spadajo v razred pisave … Obseg kopiranja ("B1: B10"). Počisti konec s koncem s končnico Sub 

Popolnoma kvalificirano z blokom

Če želim narediti nekaj sprememb s pisavo obsega A1: A10 lista 2 v kodi, ki vsebuje delovni zvezek, potem moramo uporabiti popolnoma kvalificiran blok.

Spodnji dve kodi bosta delovali enako.

Pod test2 () S tem delovnim zvezkom z .Sheets ("Sheet2") With .Range ("A1: A10") With .Font .Name = "Algerian" .ColorIndex = 12. Pod 
"Popolnoma usposobljen z blokom Sub test3 () S tem delovnim zvezkom.Sheets (" Shee2 "). Range (" A1: A10 "). Font .Name =" Algerian ".ColorIndex = 12. Underline = xlUnderlineStyleDouble End With End Sub 

Vidite razliko. Ko torej veste, da boste iz predmeta uporabili več metod in lastnosti, na začetku vnesite polno ime. Če boste uporabljali podrejene predmete, uporabite prejšnji pristop. Izkušeni programerji uporabljajo obe metodi v primernih situacijah.

Torej, fantje, tako uporabljamo blok With - End With v VBA. Upam, da sem bil dovolj razložljiv in da vam je ta članek pomagal razumeti koncept With - End With. Če dvomite o tem članku ali kateri koli drugi temi, me vprašajte v spodnjem razdelku za komentarje. Z veseljem vam bom pomagal.

Spremenljivke VBA v Excelu| VBA pomeni Visual Basic for Applications. To je programski jezik podjetja Microsoft. Uporablja se z aplikacijami Microsoft Office, kot so MSExcel, MS-Word in MS-Access, medtem ko so spremenljivke VBA posebne ključne besede.

Spremenljivi obseg programa Excel VBA| V vseh programskih jezikih imamo spremenljivke dostopa, ki določajo, od kod je mogoče dostopati do določene spremenljivke. Excel VBA ni izjema. VBA ima tudi specifikatorje obsega.

Argumenti ByRef in ByVal | Ko se argument posreduje kot argument ByRef na drugo pod -funkcijo ali funkcijo, se pošlje sklic na dejansko spremenljivko. Vse spremembe v kopiji spremenljivke se odražajo v izvirnem argumentu.

Brisanje listov brez potrditvenih pozivov z uporabo VBA v programu Microsoft Excel | Ker z VBA brišete liste, veste, kaj počnete. Excelu želite povedati, naj ne prikaže tega opozorila, in izbrišite prekleti list.

Dodajte in shranite nov delovni zvezek z uporabo VBA v programu Microsoft Excel 2016| V tej kodi smo najprej ustvarili sklic na predmet delovnega zvezka. In potem smo ga inicializirali z novim objektom delovnega zvezka. Prednost tega pristopa je, da lahko preprosto delate na tem novem delovnem zvezku. Tako kot shranjevanje, zapiranje, brisanje itd

Prikaz sporočila v vrstici stanja Excel VBA| Vrstica stanja v Excelu se lahko uporablja kot monitor kode. Ko je vaša koda VBA dolga in z VBA opravljate več nalog, pogosto onemogočite posodobitev zaslona, ​​tako da zaslon ne utripa.

Izklopite opozorilna sporočila z uporabo VBA v programu Microsoft Excel 2016| Ta koda ne samo onemogoči opozorila VBA, ampak tudi poveča časovno učinkovitost kode. Poglejmo, kako.

Priljubljeni članki:

50 bližnjic v Excelu za večjo produktivnost | Poskrbite, da bo vaša naloga hitrejša. S temi 50 bližnjicami boste še hitreje delali v Excelu.

Funkcija VLOOKUP v Excelu | To je ena najpogosteje uporabljenih in priljubljenih funkcij programa Excel, ki se uporablja za iskanje vrednosti iz različnih obsegov in listov.

COUNTIF v Excelu 2016 | Štejte vrednosti s pogoji s to neverjetno funkcijo. Za štetje določenih vrednosti vam ni treba filtrirati podatkov. Funkcija Countif je bistvena za pripravo vaše armaturne plošče.

Kako uporabljati funkcijo SUMIF v Excelu | To je še ena bistvena funkcija armaturne plošče. To vam pomaga povzeti vrednosti za posebne pogoje.