Kuidas kasutada koos ... Lõpeta plokiga VBA Excelis?

Lang L: none (table-of-contents):

Anonim

VBA plokki With - End With kasutatakse VBA -le teatamiseks, et me kavatseme antud objekti kasutada ja see peaks antud objekti omadusi arvesse võtma alles siis, kui kasutame punktioperaatorit. Näeme näiteid selles artiklis hiljem.

Süntaks koos - Lõpeta plokiga

[Object] '[Object] muutmiseks või kasutamiseks mõeldud kood'- '- Lõpeta 

Nüüd, kui me teame ploki With - End With süntaksi, vaatame selle kasutamist.

Näide koos - Lõpeta plokiga

Oletame, et soovin teha mitmeid muudatusi vahemikus A2: A10. Ma tahan valida selle vahemiku, muuta selle täitmisvärve, fondi stiili jne. Kuidas ma seda üldiselt teeksin? Ilmselt nii:

Alamkatse () vahemik ("A1: A10"). Valige vahemik ("A1: A10"). Interior.ColorIndex = 8 vahemik ("A1: A10"). Font.Name = "Alžeeria" vahemik ("A1: A10") ") .Font.ColorIndex = 12 vahemik (" A1: A10 "). Font.Underline = xlUnderlineStyleDouble Range (" A1: A10 "). Kopeeri vahemik (" B1: B10 ") Vahemik (" A1: A10 "). Selge End Sub 

Ülaltoodud valib vahemiku A1: A10. Muudab vahemiku sisevärvi värviindeksiks 8. Muudab fondi Alžeeria keeleks. Muudab fondi värvi värviindeksiks 12. Joonestab vahemikus oleva teksti topeltjoonetega alla. Seejärel kopeerib see vahemiku A1: A10 sama lehe vahemikku B1: B10. Lõpuks puhastab see vahemiku A1: A10.

Võite märgata, et iga toimingu tegemiseks vahemikuga A1: A10 peame selle iga kord kirjutama. Seejärel pääseb punktoperaator oma omadustele juurde. See vähendab töötlemiskiirust ja suurendab VBA programmeerijate üldkulusid. Alternatiiviks on ploki With kasutamine: Allolev kood teeb sama, mis ülaltoodud kood, kuid kiiremini.

Alamkatse () Vahemikuga ("A1: A10"). Valige .Interior.ColorIndex = 8 .Font.Name = "Alžeeria" .Font.ColorIndex = 12 .Font.Underline = xlUnderlineStyleDouble. Kopeeri vahemik ("B1: B10" ). Selge lõpp lõpuosaga 


Vaatame teist näidet.

Kui olete loonud Outlook Maili objekti, saate seda objekti kasutada kõigi selle omaduste ja meetodite lähtestamiseks.

Set outMail = Outlook.Application.CreateItem (0) OutMail .To = "abcd.mail.com" 'Kohustuslik. Siin saate määrata sihtkoha e -posti aadressi… cc = "cc.mail.com" 'valikuline. Cc -posti ID, kui soovite… BCC = "bcc.mail.com" 'valikuline. Pimekoopia e -posti aadress, kui soovite … Teema = subj 'peaks olema. Massaaž posti kehale … Keha = sõnum 'vabatahtlik. Massaaž postkehal … Lisad. Lisage "C: /exceltip.com \ test.xlsx". Saada lõpp 

Kuidas see töötab?

Kui kirjutame koos vahemikuga ("A1: A10"), lukustab vba oma viite objektivahemikule ("A1: A10"). Nii et alati, kui kirjutame punkti (.) Operaatorit, loetleb VBA kõik selle vahemikuklassi liikmed, mis mõjutavad ainult objektivahemikku ("A1: A10") või kõiki teie mainitud objekte. Viitelukk vabastatakse, kui VBA loeb lauset End With.

Plokkidega pesastatud

Meil võib olla plokk teises plokis. Ülaltoodud näites kasutasime selle valimiseks vahemiku objekti. Seejärel kasutasime fontidega töötamiseks mitu korda valikut Range.Font. See on jällegi korduv. Ülaltoodud koodi võib kirjutada ka järgmiselt:

Alamkatse () Vahemikuga ("A1: A10"). Valige .Interior.ColorIndex = 8 'Teise kasutamine koos plokiga .Font .Name = "Alžeeria" .ColorIndex = 12 .Underline = xlUnderlineStyleDouble End with .Copy Vahemik ("B1: B10"). Selge lõpp koos lõpuosaga 

Sisemine koos plokiga peaks viitama objektile, mis on välise objekti alamliige. Võime viidata välisele objektiga ja sisemisele kui lapsele. Kui alustate sisemisest, tuleks objekt kirjutada eelmise punktioperaatoriga.

Kui olete laps, ei pääse te vanemapõhistele atribuutidele juurde. Näiteks allolev kood on vale.

Alamkatse () Vahemikuga ("A1: A10"). Valige .Interior.ColorIndex = 8 'Teise kasutamine koos plokiga .Font .Name = "Alžeeria" .ColorIndex = 12 .Underline = xlUnderlineStyleDouble' Allolev kood genereerib vea, kuna kopeerimise ja kustutamise meetodid ei kuulu fondiklassi … Kopeerimisvahemik ("B1: B10"). Kustuta lõpp lõpuga lõpuga Alam 

Blokiga täielikult kvalifitseeritud

Kui ma tahan teha muudatusi töövihikut sisaldavas lehes 2 oleva vahemiku A1: A10 fondiga, siis peaksime kasutama täielikult kvalifitseeritud plokki.

Allpool toodud kaks koodi töötavad samamoodi.

Sub test2 () Selle töövihiku abil .Sheets ("Sheet2") With .Range ("A1: A10") With .Font .Name = "Algerian" .ColorIndex = 12 .Underline = xlUnderlineStyleDouble End With End With End with End with End Sub 
'Täielikult kvalifitseeritud ploki alamkatsega 3 () koos käesoleva töövihikuga.Sheets ("Shee2"). Vahemik ("A1: A10"). Font .Name = "Alžeeria" .ColorIndex = 12 .Underline = xlUnderlineStyleDouble End With End Sub 

Näete erinevust. Seega, kui teate, et kasutate objektilt mitmeid meetodeid ja atribuute, andke alguses täielik nimi. Kui kasutate alamobjekte, kasutage eelmist meetodit. Kogenud programmeerijad kasutavad sobivas olukorras mõlemat meetodit.

Nii et jah, poisid, me kasutame VBA -s plokki With - End With. Loodan, et olin piisavalt selgitav ja see artikkel aitas teil aru saada - Lõpuga. Kui teil on selle artikli või mõne muu teema osas kahtlusi, küsige seda allpool kommentaaride osas. Aitan teid hea meelega.

VBA muutujad Excelis| VBA tähistab Visual Basic for Applications. See on Microsofti programmeerimiskeel. Seda kasutatakse koos Microsoft Office'i rakendustega, nagu MSExcel, MS-Word ja MS-Access, samas kui VBA muutujad on spetsiifilised märksõnad.

Exceli VBA muutuv ulatus| Kõigis programmeerimiskeeltes on meil muutuva juurdepääsu spetsifikatsioonid, mis määravad, kust saab määratud muutujale juurde pääseda. Excel VBA pole erand. Ka VBA -l on ulatuse täpsustajad.

ByRef ja ByVal argumendid | Kui argument edastatakse ByRef argumendina teisele alam- või funktsioonile, saadetakse tegeliku muutuja viide. Kõik muutuja koopiasse tehtud muudatused kajastuvad algses argumendis.

Kustutage lehed ilma kinnitusviipadeta, kasutades Microsoft Excelis VBA -d | Kuna kustutate lehti VBA abil, teate, mida teete. Sooviksite Excelil seda hoiatust mitte kuvada ja neetud leht kustutada.

Uue töövihiku lisamine ja salvestamine Microsoft Excel 2016 VBA abil| Selles koodis lõime esmalt viite töövihiku objektile. Ja siis vormistasime selle uue töövihikuobjektiga. Selle lähenemisviisi eeliseks on see, et saate selle uue töövihikuga hõlpsalt toiminguid teha. Nagu salvestamine, sulgemine, kustutamine jne

Kuva teade Exceli VBA olekuribal| Exceli olekuriba saab kasutada koodimonitorina. Kui teie VBA -kood on pikk ja teete VBA -ga mitmeid ülesandeid, keelate sageli ekraani värskendamise, nii et te ei näe seda ekraani vilkumist.

Lülitage hoiatussõnumid välja Microsoft Excel 2016 VBA abil| See kood mitte ainult ei luba VBA hoiatusi, vaid suurendab ka koodi ajakasutust. Vaatame, kuidas.

Populaarsed artiklid:

50 Exceli otseteed tootlikkuse suurendamiseks | Saa oma ülesandega kiiremini hakkama. Need 50 otseteed aitavad teil Excelis veelgi kiiremini töötada.

Funktsioon VLOOKUP Excelis | See on üks enim kasutatud ja populaarsemaid Exceli funktsioone, mida kasutatakse erinevate vahemike ja lehtede väärtuse otsimiseks.

COUNTIF Excelis 2016 | Loendage väärtused tingimustega, kasutades seda hämmastavat funktsiooni. Te ei pea oma andmeid teatud väärtuste loendamiseks filtreerima. Countif funktsioon on armatuurlaua ettevalmistamisel hädavajalik.

Funktsiooni SUMIF kasutamine Excelis | See on veel üks armatuurlaua oluline funktsioon. See aitab teil teatud tingimustel väärtusi kokku võtta.