Како се користи са ... Заврши са блоком у ВБА Екцелу?

Преглед садржаја:

Anonim

Блок Витх - Енд Витх у ВБА се користи да каже ВБА -и да ћемо користити дати објекат и требало би да узме у обзир својства датог објекта само када употребимо дот оператор. Примере ћемо видети касније у овом чланку.

Синтакса са - Заврши са блоком

Са [Објецт] 'Цоде за промену или употребу [Објецт]'- '- Енд Витх 

Па сада када знамо синтаксу блока Витх - Енд Витх, да видимо његову употребу.

Пример Витх - Енд Витх Блоцк

Рецимо да желим да направим неколико промена у опсегу А2: А10. Желим да изаберем овај опсег, променим боје испуне, стил фонта итд. Како бих то уопште урадио? Вероватно овако:

Под тест () Распон ("А1: А10"). Изаберите опсег ("А1: А10"). Интериор.ЦолорИндек = 8 Распон ("А1: А10"). Фонт.Наме = "Алжирски" опсег ("А1: А10" ") .Фонт.ЦолорИндек = 12 Распон (" А1: А10 "). Фонт.Ундерлине = клУндерлинеСтилеДоубле Ранге (" А1: А10 "). Опсег копирања (" Б1: Б10 ") Распон (" А1: А10 "). Обриши Енд Суб 

Горе наведено бира опсег А1: А10. Мења унутрашњу боју распона у индекс боја 8. Мења фонт у алжирски. Мења боју фонта у индекс боја 12. Подвлачи текст у опсегу двоструким подвлачењем. Затим копира опсег А1: А10 у опсег Б1: Б10 истог листа. Најзад брише опсег А1: А10.

Можете приметити да за сваку операцију са опсегом А1: А10 морамо да је напишемо сваки пут. Тада оператор тачке приступа њеним својствима. Ово смањује брзину обраде и повећава трошкове рада ВБА програмерима. Алтернатива за то је употреба блока Витх: Доњи код ради исто што и горњи код, али брже.

Под тест () Са опсегом ("А1: А10"). Одаберите .Интериор.ЦолорИндек = 8 .Фонт.Наме = "Алгериан". Фонт.ЦолорИндек = 12 .Фонт.Ундерлине = клУндерлинеСтилеДоубле .Цопи Ранге ("Б1: Б10" ) .Очисти крај са Енд Суб 


Погледајмо још један пример.

Ако сте креирали објекат Оутлоок поште, можете га користити за иницијализацију свих његових својстава и коришћење метода.

Сет оутМаил = Оутлоок.Апплицатион.ЦреатеИтем (0) Са оутМаил .То = "абцд.маил.цом" 'Обавезно. Овде дефинишете одредишни ид поште … цц = "цц.маил.цом" 'опционално. Цц маил ид ако желите … БЦЦ = "бцц.маил.цом" 'опционално. Бцц маил ид ако желите … Субјецт = субј 'би требао имати. Масажа тела поште… Боди = мсг 'опционо. Масажа на телу поште … Прилози.Додајте „Ц: /екцелтип.цом \ тест.клск“ .Пошаљите крај са 

Како то функционише?

Па, када пишемо Витх Ранге ("А1: А10"), вба закључава своју референцу на распон објеката ("А1: А10"). Дакле, кад год запишемо дот (.) Оператор, ВБА наводи све чланове ове класе опсега који ће утицати само на Ранге објеката ("А1: А10") или на било који објекат који сте споменули. Закључавање референце се ослобађа када ВБА прочита израз Енд Витх.

Уметнуто са блоковима

Можемо имати блок у другом блоку. У горњем примеру смо користили објекат опсега да га изаберемо. Затим смо неколико пута користили Ранге.Фонт за рад са фонтовима. Ово се опет понавља. Горњи код се може написати и овако:

Под тест () Са опсегом ("А1: А10"). Одаберите .Интериор.ЦолорИндек = 8 'Коришћење другог Витх унутар а Витх Блоцк Витх .Фонт .Наме = "Алжирски" .ЦолорИндек = 12. Ундерлине = клУндерлинеСтилеДоубле Енд Витх .Цопи Опсег ("Б1: Б10"). Очистите крај са Енд Суб 

Унутрашњи са блоком треба да се односи на објекат који је подчлан спољног објекта. Спољашње са можемо означити као објекат са, а унутрашње Са као дете са. Када започнете унутра са, објекат би требао бити написан претходним оператором тачке.

Кад постанете дете, нећете моћи да приступите својствима специфичним за родитеље. На пример, доњи код је погрешан.

Под тест () Са опсегом ("А1: А10"). Изаберите .Интериор.ЦолорИндек = 8 'Коришћење другог Витх у оквиру Витх Витх Блоцк Витх .Фонт .Наме = "Алжирски" .ЦолорИндек = 12. Ундерлине = клУндерлинеСтилеДоубле' Код испод ће генерисати грешку јер методе копирања и брисања не припадају класи фонтова … Опсег копирања ("Б1: Б10"). Очисти крај са крајем са подменом 

Потпуно квалификовано са блоком

Ако желим да направим неке промене са фонтом опсега А1: А10 листа 2 у коду који садржи радну свеску, онда бисмо требали користити потпуно квалификован блок.

Два доленаведена кода ће радити исто.

Под тест2 () Са овом радном књигом са. Таблицама ("лист 2") са. Опсегом ("А1: А10") са. Фонтом. Име = "алжирски". Боја индекс = 12. Подвод = клУндерлинеСтилеДоубле крај са крајем са крајем са крајем са крајем Суб 
'Потпуно квалификован са блоком Суб тест3 () Са ТхисВоркбоок.Схеетс ("Схее2"). Распон ("А1: А10"). Фонт .Наме = "Алжирски" .ЦолорИндек = 12. Ундерлине = клУндерлинеСтилеДоубле Енд Витх Енд Суб 

Можете видети разлику. Дакле, када знате да ћете користити више метода и својстава из објекта, дајте потпуно квалификовано име на почетку. Ако ћете користити подређене објекте, користите претходни приступ. Искусни програмери користе обе методе у одговарајућим ситуацијама.

Па да, момци, овако користимо блок Витх - Енд Витх у ВБА. Надам се да сам вам довољно објаснио и да вам је овај чланак помогао да разумете концепт Витх - Енд Витх. Ако имате било каквих недоумица у вези овог чланка или било које друге теме, питајте ме у доњем одељку коментара. Биће ми драго да вам помогнем.

ВБА променљиве у Екцелу| ВБА означава Висуал Басиц фор Апплицатионс. То је програмски језик компаније Мицрософт. Користи се са апликацијама Мицрософт Оффице као што су МСЕкцел, МС-Ворд и МС-Аццесс, док су ВБА променљиве одређене кључне речи.

Екцел ВБА променљиви опсег| У свим програмским језицима имамо спецификаторе приступа променљивим који дефинишу одакле се може приступити дефинисаној променљивој. Екцел ВБА није изузетак. ВБА такође има спецификаторе опсега.

Аргументи БиРефа и БиВала | Када се аргумент пренесе као БиРеф аргумент на другу под -функцију или функцију, шаље се референца стварне променљиве. Све промене направљене у копији променљиве ће се одразити у оригиналном аргументу.

Брисање листова без упита за потврду помоћу ВБА у програму Мицрософт Екцел | Пошто бришете листове помоћу ВБА, знате шта радите. Желели бисте да кажете Екцелу да не приказује ово упозорење и да избрише проклети лист.

Додајте и сачувајте нову радну свеску помоћу ВБА у програму Мицрософт Екцел 2016| У овом коду смо прво креирали референцу на објекат радне свеске. Затим смо га иницијализовали новим објектом радне свеске. Предност овог приступа је што можете лако да радите на овој новој радној свесци. Као чување, затварање, брисање итд

Прикажите поруку на статусној траци програма Екцел ВБА| Статусна трака у екцелу може се користити као монитор кода. Када је ваш ВБА код дугачак и обављате неколико задатака користећи ВБА, често онемогућујете ажурирање екрана тако да не видите да екран трепери.

Искључите поруке упозорења помоћу ВБА у програму Мицрософт Екцел 2016| Овај код не само да онемогућава ВБА упозорења, већ и повећава временску ефикасност кода. Да видимо како.

Популарни чланци:

50 Екцел пречица за повећање продуктивности | Убрзајте свој задатак. Ових 50 пречица ће учинити да радите још брже на Екцелу.

Функција ВЛООКУП у Екцелу | Ово је једна од најчешће кориштених и популарних функција програма Екцел која се користи за тражење вриједности из различитих распона и листова.

ЦОУНТИФ у програму Екцел 2016 | Бројте вредности са условима користећи ову невероватну функцију. Не морате да филтрирате податке да бисте рачунали одређене вредности. Цоунтиф функција је неопходна за припрему ваше контролне табле.

Како се користи функција СУМИФ у програму Екцел | Ово је још једна битна функција контролне табле. Ово вам помаже да сумирате вредности под одређеним условима.