Blok With - End With u VBA -i koristi se da bi VBA -i rekao da ćemo koristiti dati objekt i da bi trebao razmotriti svojstva danog objekta samo nakon što koristimo dot operator. Primjere ćemo vidjeti kasnije u ovom članku.
Sintaksa s - Završi s blokom
S [Object] 'Kodom za promjenu ili upotrebu [Object]'- '- Završi s
Pa sada kada znamo sintaksu bloka With - End With, pogledajmo njegovu upotrebu.
Primjer sa - završi s blokom
Recimo da želim napraviti nekoliko promjena u rasponu A2: A10. Želim odabrati ovaj raspon, promijeniti boje ispune, stil fonta itd. Kako bih to općenito napravio? Vjerojatno ovako:
Pod test () Raspon ("A1: A10"). Odaberite raspon ("A1: A10"). Interijer.Indeks boja = 8 Raspon ("A1: A10"). Font.Name = "Alžirski" raspon ("A1: A10" ") .Font.ColorIndex = 12 Raspon (" A1: A10 "). Font.Underline = xlUnderlineStyleDvostruki raspon (" A1: A10 "). Raspon kopiranja (" B1: B10 ") Raspon (" A1: A10 "). Jasno Kraj podm
Gore navedeno odabire raspon A1: A10. Mijenja unutrašnju boju raspona u indeks boja 8. Mijenja font u alžirski. Mijenja boju fonta u indeks boja 12. Podcrtava tekst u rasponu dvostrukim podcrtavanjem. Zatim kopira raspon A1: A10 u raspon B1: B10 istog lista. Konačno briše raspon A1: A10.
Možete primijetiti da za svaku operaciju s rasponom A1: A10 to moramo zapisati svaki put. Tada operator točke pristupa svojim svojstvima. Time se smanjuje brzina obrade i povećavaju troškovi rada za VBA programere. Alternativa za to je korištenje bloka With: Donji kod radi isto što i gornji kod, ali brže.
Podispit () s rasponom ("A1: A10"). Odaberite .Interijer. Indeks boja = 8. Font.Name = "Alžirski". Font.ColorIndex = 12. Font.Underline = xlUnderlineStyleDouble. Copy Range ("B1: B10") ) .Očisti kraj s End Sub
Pogledajmo još jedan primjer.
Ako ste stvorili objekt programa Outlook Mail, tada ga možete koristiti za inicijalizaciju svih njegovih svojstava i korištenje metoda.
Postavi outMail = Outlook.Application.CreateItem (0) Sa outMail .To = "abcd.mail.com" 'Obavezno. Ovdje definirate ID odredišne pošte… cc = "cc.mail.com" 'izborno. Cc ID pošte ako želite … BCC = "bcc.mail.com" 'po izboru. Bcc mail id ako želite … Subject = subj 'trebao bi imati. Masaža tijela pošte … Tijelo = poruka 'po izboru. Masaža na tijelu pošte … Privitci.Dodajte "C: /exceltip.com \ test.xlsx" .Pošaljite kraj s
Kako radi?
Pa, kad pišemo With Range ("A1: A10"), vba zaključava svoju referencu na raspon objekata ("A1: A10"). Dakle, kad god zapišemo dot (.) Operator, VBA navodi sve članove ove klase raspona koji će utjecati samo na raspon objekata ("A1: A10") ili bilo koji objekt koji ste spomenuli. Zaključavanje reference se oslobađa kada VBA pročita izraz End With.
Ugniježđen s blokovima
Možemo imati blok unutar drugog bloka. U gornjem primjeru za odabir smo koristili objekt raspona. Zatim smo nekoliko puta koristili Range.Font za rad sa fontovima. Ovo se opet ponavlja. Gornji kod može se napisati i ovako:
Pod test () S rasponom ("A1: A10"). Odaberite .Interior.ColorIndex = 8 'Upotreba drugog With unutar a With Block With .Font .Name = "Alžirski" .ColorIndex = 12. Underline = xlUnderlineStyleDouble End With .Copy Raspon ("B1: B10"). Očistite kraj s završnom podm
Unutrašnji sa blokom trebao bi se odnositi na objekt koji je podčlan vanjskog objekta. Vanjsko sa možemo označiti kao objekt sa, a unutarnje S kao dijete sa. Kad započnete unutar s, objekt bi trebao biti zapisan prethodnim operatorom točaka.
Kad postanete dijete, ne možete pristupiti svojstvima specifičnim za roditelje. Na primjer, donji kôd je pogrešan.
Pod test () S rasponom ("A1: A10"). Odaberite .Interior.ColorIndex = 8 'Upotreba drugog With unutar a With Block With .Font .Name = "Alžirski" .ColorIndex = 12. Underline = xlUnderlineStyleDouble' Kod u nastavku će generirati pogrešku jer metode kopiranja i brisanja ne pripadaju klasi fontova … Raspon kopiranja ("B1: B10"). Očisti kraj s krajem s krajem pod
Potpuno kvalificirano s blokom
Ako želim napraviti neke promjene s fontom raspona A1: A10 lista 2 u kodu koji sadrži radnu knjigu, tada bismo trebali koristiti potpuno kvalificirani blok.
Dva koda u nastavku će raditi isto.
Pod test2 () S ovom radnom knjigom s. Tablicama ("list 2") s. Rasponom ("A1: A10") s. Fontom. Ime = "alžirski". Indeks boja = 12. Podcrtano = xlUnderlineStyleDvostruko završi s krajem s krajem s krajem s krajem Pod
'Potpuno kvalificiran s blokom Sub test3 () S ovim radnim listovima ("Shee2"). Raspon ("A1: A10"). Font .Name = "Alžir"
Možete vidjeti razliku. Dakle, kad znate da ćete koristiti više metoda i svojstava iz objekta, na početku dajte potpuno kvalificirano ime. Ako ćete koristiti podređene objekte, upotrijebite prethodni pristup. Iskusni programeri koriste obje metode u prikladnim situacijama.
Pa da, dečki, ovako koristimo blok With - End With u VBA -i. Nadam se da sam vam dovoljno objasnio i da vam je ovaj članak pomogao razumjeti koncept With - End With. Ako imate bilo kakvih nedoumica u vezi ovog članka ili bilo koje druge teme, pitajte me u donjem odjeljku komentara. Rado ću vam pomoći.
VBA varijable u Excelu| VBA znači Visual Basic for Applications. To je programski jezik iz Microsofta. Koristi se s aplikacijama Microsoft Office kao što su MSExcel, MS-Word i MS-Access, dok su VBA varijable određene ključne riječi.
Excel VBA varijabilni opseg| U svim programskim jezicima imamo specifikatore pristupa varijablama koji definiraju odakle se može pristupiti definiranoj varijabli. Excel VBA nije iznimka. VBA također ima specifikatore opsega.
Argumenti ByRefa i ByVala | Kada se argument prenese kao ByRef argument na drugu pod -funkciju ili funkciju, šalje se referenca stvarne varijable. Sve promjene napravljene u kopiji varijable odrazit će se u izvornom argumentu.
Brisanje listova bez upita za potvrdu pomoću VBA u programu Microsoft Excel | Budući da brišete listove pomoću VBA -a, znate što radite. Htjeli biste Excel reći da ne prikazuje ovo upozorenje i izbrisati prokleti list.
Dodavanje i spremanje nove radne knjige pomoću VBA -a u programu Microsoft Excel 2016| U ovom smo kodu najprije stvorili referencu na objekt radne knjige. Zatim smo ga inicijalizirali novim objektom radne knjige. Prednost ovog pristupa je u tome što s ovom novom radnom knjigom možete lako raditi. Kao spremanje, zatvaranje, brisanje itd
Prikažite poruku na statusnoj traci programa Excel VBA| Statusna traka u Excelu može se koristiti kao monitor koda. Kad je vaš VBA kôd dugačak i obavite nekoliko zadataka pomoću VBA -a, često onemogućujete ažuriranje zaslona kako ne biste vidjeli kako zaslon treperi.
Isključite poruke upozorenja pomoću VBA u programu Microsoft Excel 2016| Ovaj kôd ne samo da onemogućuje VBA upozorenja, već i povećava vremensku učinkovitost koda. Pogledajmo kako.
Popularni članci:
50 Excel prečaca za povećanje vaše produktivnosti | Budite brži u izvršavanju svojih zadataka. Ovih 50 prečaca učinit će da radite još brže na Excelu.
Funkcija VLOOKUP u Excelu | Ovo je jedna od najčešće korištenih i popularnih funkcija programa Excel koja se koristi za traženje vrijednosti iz različitih raspona i listova.
COUNTIF u Excelu 2016 | Brojte vrijednosti s uvjetima pomoću ove nevjerojatne funkcije. Ne morate filtrirati svoje podatke da biste brojali određene vrijednosti. Funkcija Countif bitna je za pripremu vaše nadzorne ploče.
Kako koristiti funkciju SUMIF u Excelu | Ovo je još jedna bitna funkcija nadzorne ploče. To vam pomaže pri zbrajanju vrijednosti u posebnim uvjetima.