Екцел ВБА кодирање: Рад са прозором кода

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

Минимизирање и максимизирање прозора ВБА кода

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

Екцел ВБА кодирање: Рад са прозором кода

Преоптерећење прозора кода није леп призор.

Прозори кода су слични прозорима радне свеске у Екцел-у. Можете их минимизирати, максимизирати, променити им величину, сакрити их, преуредити и тако даље. Већини људи је много лакше да максимизирају прозор кода на којем раде. То вам омогућава да видите више кода и спречава вас да се ометате.

Да бисте повећали прозор кода, кликните на дугме Увећај на његовој насловној траци (одмах поред Кс). Или само двапут кликните на насловну траку да бисте је повећали. Да бисте вратили прозор кода у оригиналну величину, кликните на дугме Врати. Када је прозор максимизиран, његова насловна трака није видљива, тако да ћете пронаћи дугме Врати испод насловне траке ВБЕ.

Понекад ћете можда желети да имате видљива два или више прозора кода. На пример, можда ћете желети да упоредите код у два модула или да копирате код из једног модула у други. Можете ручно да распоредите прозоре или да изаберете Прозор → Плочица хоризонтално или Прозор → Плочица вертикално да бисте их аутоматски распоредили.

Можете брзо да прелазите између прозора кода притиском на Цтрл+Ф6. Ако поновите ту комбинацију тастера, настављате да се крећете кроз све отворене прозоре кода. Притиском на Цтрл+Схифт+Ф6 кружи кроз прозоре обрнутим редоследом. (За више информација погледајте ове Екцел ВБА пречице на тастатури .)

Минимизирање прозора кода уклања га с пута. Такође можете кликнути на дугме Затвори прозора (које приказује Кс) на насловној траци прозора кода да бисте затворили прозор. (Затварање прозора само га сакрива; нећете изгубити ништа.) Да бисте га поново отворили, само двапут кликните на одговарајући објекат у прозору пројекта. Иначе, рад са овим прозорима кода звучи теже него што заиста јесте.

Креирање ВБА модула

Генерално, Екцел ВБА модул може да садржи три типа кода:

  • Декларације: Једна или више информација које дајете ВБА. На пример, можете декларисати тип података за променљиве које планирате да користите или поставите неке друге опције за читав модул. Декларације су у основи изјаве о домаћинству. Они заправо нису погубљени.
  • Подпроцедуре: Скуп програмских инструкција које, када се изврше, извршавају неку радњу.
  • Функционалне процедуре: Скуп програмских инструкција који враћа једну вредност (слично концепту функције радног листа, као што је СУМ).

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

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

Убацивање ВБА кода у модул

Празан ВБА модул је као лажна храна коју видите на излозима неких кинеских ресторана; изгледа добро, али не чини много за вас. Пре него што можете да урадите било шта значајно, морате имати неки ВБА код у ВБА модулу. Можете добити ВБА код у ВБА модул на три начина:

  • Унесите код директно.
  • Користите Екцел снимач макроа да снимите своје радње и претворите те радње у ВБА код.
  • Копирајте код из једног модула и налепите га у други.

Директно уношење Екцел ВБА кода

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

Користите тастер Таб да бисте увукли неке од редова да би ваш код био лакши за читање. Увлачење није неопходно, али је добра навика за стицање. Док проучавате Екцел ВБА кодирање, схватићете зашто је увлачење линија кода корисно.

Једна линија ВБА кода може бити дугачка онолико колико вам је потребно. Међутим, можда ћете желети да користите знакове за наставак линије да бисте разбили дугачке редове кода. Да бисте наставили један ред кода (такође познат као изјава) из једног реда у други, завршите први ред размаком након којег следи доња црта (_). Затим наставите изјаву у следећем реду. И не заборавите на простор. Знак доње црте коме не претходи размак неће обавити посао.

Ево примера једне изјаве подељене у три реда:

Селецтион.Сорт Кеи1:=Распон("А1"), _
  Ордер1:=клАсцендинг, Хеадер:=клГуесс, _
  Оријентација:=клТопТоБоттом

Ова изјава би деловала потпуно на исти начин ако би се унела у једном реду (без знакова за наставак реда). Обратите пажњу да су други и трећи ред ове изјаве увучени. Увлачење није обавезно, али помаже да се разјасни чињеница да ови редови нису одвојени искази.

Инжењери у белом мантилу који су дизајнирали ВБЕ предвиђали су да ће људи правити грешке. Стога, ВБЕ има више нивоа поништавања и понављања. Ако сте избрисали изјаву коју не би требало да имате, кликните на дугме Поништи на траци са алаткама (или притисните Цтрл+З) док се изјава поново не појави. Након поништавања, можете кликнути на дугме Понови да бисте извршили промене које сте опозвали.

Да ли сте спремни да унесете неки прави код? Пробајте следеће кораке:

Направите нову радну свеску у Екцел-у.

Притисните Алт+Ф11 да активирате ВБЕ.

Кликните на име нове радне свеске у прозору пројекта.

Изаберите Убаци → Модул да бисте убацили ВБА модул у пројекат.

Унесите следећи код у модул:

Суб ГуессНаме()
Мсг = "Да ли је ваше име " & Апплицатион.УсерНаме & "?"
Анс = МсгБок(Мсг, вбИесНо)
Ако је Анс = вбНо Онда МсгБок "Ох, нема везе."
Ако је Анс = вбИес Онда МсгБок "Мора да сам видовит!"
Енд Суб

Поставите курсор било где унутар текста који сте унели и притисните Ф5 да бисте извршили процедуру.

Ф5 је пречица за Рун → Рун Суб/УсерФорм. Ако сте исправно унели код, Екцел извршава процедуру, а ви можете да одговорите на једноставан оквир за дијалог. Текст у дијалогу ће се разликовати од текста приказаног овде.

Екцел ВБА кодирање: Рад са прозором кода

Процедура ГуессНаме приказује овај оквир за дијалог.

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

Ако сте пратили претходне кораке, управо сте написали ВБА Суб процедуру, такође познату као макро. Када притиснете Ф5, Екцел извршава код и прати упутства. Другим речима, Екцел процењује сваку изјаву и ради оно што сте му рекли да уради. (Не дозволите да вам ова новооткривена моћ падне у главу.) Овај макро можете извршити било који број пута — иако има тенденцију да изгуби своју привлачност након неколико десетина пута.

За записник, овај једноставан Екцел макро користи следеће концепте:

  • Дефинисање потпроцедуре (први ред)
  • Додељивање вредности променљивим (Мсг анд Анс)
  • Повезивање (придруживање) низа (помоћу & оператора)
  • Коришћење уграђене ВБА функције (МсгБок)
  • Коришћење уграђених ВБА константи (вбИесНо, вбНо и вбИес)
  • Коришћење Иф-Тхен конструкције (двапут)
  • Завршетак подпроцедуре (последњи ред)

Коришћење Екцел ВБА макро снимача

Други начин на који можете да унесете код у ВБА модул је снимање ваших радњи помоћу Екцел снимача макроа.

Успут, апсолутно не постоји начин да снимите процедуру ГуессНаме приказану изнад. Можете да снимате само ствари које можете да урадите директно у Екцел-у. Приказивање оквира са поруком није у нормалном репертоару Екцел-а. (То је ВБА ствар.) Макро снимач је користан, али у многим случајевима ћете вероватно морати ручно да унесете бар неки код.

Ево примера корак по корак који показује како да снимите макро који убацује нови радни лист и сакрива све осим првих десет редова и свих осим првих десет колона. Ако желите да испробате овај пример, почните са новом, празном Екцел радном свеском и следите ове кораке:

Активирајте радни лист у радној свесци.

Било који Екцел радни лист ће бити добар.

Кликните на картицу Програмер и уверите се да Користи релативне референце није истакнуто.

Овај макро се снима коришћењем апсолутних референци.

Изаберите Програмер → Код → Сними макро или кликните на икону поред индикатора Спреман на левом крају статусне траке.

Екцел приказује дијалог за снимање макроа.

У дијалогу Снимање макроа, именујте макро ТенБиТен, наведите да желите да макро буде сачуван у овој радној свесци и притисните Схифт+Т за пречицу.

Макро се може извршити када притиснете Цтрл+Схифт+Т.

Кликните на ОК да започнете снимање. Екцел аутоматски убацује нови ВБА модул у пројекат који одговара активној радној свесци.

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

Кликните на икону Нови лист са десне стране картице последњег листа.

Екцел убацује нови радни лист.

Изаберите целу колону К (11. колону) и притисните Цтрл+Схифт+стрелица надесно; затим кликните десним тастером миша на било коју изабрану колону и изаберите Сакриј из менија са пречицама.

Екцел сакрива све изабране колоне.

Изаберите цео ред 11 и притисните Цтрл+Схифт+стрелица надоле; затим кликните десним тастером миша на било који изабрани ред и изаберите Сакриј из менија са пречицама.

Екцел сакрива све изабране колоне.

Изаберите ћелију А1.

Изаберите Програмер → Код → Заустави снимање или кликните на дугме Заустави снимање на статусној траци (мали квадрат). Екцел престаје да снима ваше радње.

Да бисте видели овај ново снимљени макро, притисните Алт+Ф11 да бисте активирали ВБЕ. Пронађите назив радне свеске у прозору пројекта. Видите да пројекат има наведен нови модул. Назив модула зависи од тога да ли сте имали неке друге модуле у радној свесци када сте почели да снимате макро. Ако нисте, модул се зове Модул1. Можете двапут кликнути на модул да бисте видели прозор кода за модул.

Ево кода генерисаног вашим радњама:

Суб ТенБиТен()
'
' ТенБиТен Мацро
'
' Пречица на тастатури: Цтрл+Схифт+Т
'
  Схеетс.Адд Афтер:=АцтивеСхеет
  Колоне("К:К").Изаберите
  Опсег(Избор, Избор.Крај(клТоРигхт)).Изабери
  Селецтион.ЕнтиреЦолумн.Хидден = Тачно
  Редови("11:11").Изаберите
  Опсег(Избор, Избор.Крај(клДовн)).Изабери
  Селецтион.ЕнтиреРов.Хидден = Тачно
  Опсег("А1").Изаберите
Енд Суб

Да бисте испробали овај макро, активирајте било који радни лист и притисните тастер пречице који сте доделили у кораку 4: Цтрл+Схифт+Т.

Ако макроу нисте доделили пречицу, не брините. Ево како да прикажете листу свих доступних макроа и покренете онај који желите:

Изаберите Програмер → Код → Макрои. Љубитељи тастатуре могу да притисну Алт+Ф8.

Било која од ових метода приказује оквир за дијалог који наводи све доступне макрое.

Изаберите макро на листи (у овом случају ТенБиТен).

Кликните на дугме Покрени.

Екцел извршава макро и добијате нови радни лист са десет видљивих редова и десет видљивих колона.

Можете извршити било који број команди и извршити било који број радњи док је снимач макроа покренут. Екцел савесно преводи ваше радње мишем и притиске тастера у ВБА код.

И, наравно, такође можете уредити макро након што га снимите. Да бисте тестирали своје нове вештине, покушајте да уредите макро тако да убацује радни лист са девет видљивих редова и колона — савршено за Судоку слагалицу.

Копирање ВБА кода

Коначни метод за унос кода у ВБА модул је копирање са другог модула или са неког другог места (као што је веб локација). На пример, процедура под или функција коју напишете за један пројекат такође може бити корисна у другом пројекту. Уместо да губите време на поновни унос кода, можете активирати модул и користити уобичајене процедуре копирања и лепљења међуспремника. (Вероватно волите пречице на тастатури Цтрл+Ц за копирање и Цтрл+В за лепљење.) Након што налепите код у ВБА модул, можете да измените код ако је потребно.

Успут, наћи ћете много примера ВБА кода на вебу. Ако желите да их испробате, изаберите код у свом претраживачу и притисните Цтрл+Ц да бисте га копирали. Затим активирајте модул и притисните Цтрл+В да бисте га налепили.

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


Обришите цртеже оловком и маркером на својим ПоверПоинт слајдовима

Обришите цртеже оловком и маркером на својим ПоверПоинт слајдовима

Ако сте користили оловку или маркер за цртање на ПоверПоинт слајдовима током презентације, можете да сачувате цртеже за следећу презентацију или да их избришете тако да ћете следећи пут када их покажете почети са чистим ПоверПоинт слајдовима. Пратите ова упутства да бисте избрисали цртеже оловком и маркером: Брисање линија један на […]

Садржај библиотеке стилова у СхареПоинт 2010

Садржај библиотеке стилова у СхареПоинт 2010

Библиотека стилова садржи ЦСС датотеке, датотеке Ектенсибле Стилесхеет Лангуаге (КССЛ) и слике које користе унапред дефинисане главне странице, изгледе страница и контроле у ​​СхареПоинт 2010. Да бисте лоцирали ЦСС датотеке у библиотеци стилова на локацији за објављивање: Изаберите Радње сајта→Прикажи Сав садржај сајта. Појављује се садржај сајта. Библиотека Стил налази се у […]

Форматирајте бројеве у хиљадама и милионима у Екцел извештајима

Форматирајте бројеве у хиљадама и милионима у Екцел извештајима

Немојте претрпати своју публику огромним бројевима. У Мицрософт Екцел-у можете побољшати читљивост својих контролних табли и извештаја тако што ћете форматирати своје бројеве тако да се појављују у хиљадама или милионима.

Како делити и пратити СхареПоинт локације

Како делити и пратити СхареПоинт локације

Научите како да користите СхареПоинт алатке за друштвено умрежавање које омогућавају појединцима и групама да комуницирају, сарађују, деле и повезују се.

Како претворити датуме у јулијанске формате у Екцелу

Како претворити датуме у јулијанске формате у Екцелу

Јулијански датуми се често користе у производним окружењима као временска ознака и брза референца за број серије. Ова врста кодирања датума омогућава продавцима, потрошачима и услужним агентима да идентификују када је производ направљен, а тиме и старост производа. Јулијански датуми се такође користе у програмирању, војсци и астрономији. Различит […]

Како да направите приступну веб апликацију

Како да направите приступну веб апликацију

Можете да креирате веб апликацију у програму Аццесс 2016. Дакле, шта је уопште веб апликација? Па, веб значи да је онлајн, а апликација је само скраћеница за „апликацију“. Прилагођена веб апликација је апликација базе података на мрежи којој се приступа из облака помоћу претраживача. Ви правите и одржавате веб апликацију у верзији за десктоп […]

Трака за брзо покретање у СхареПоинт 2010

Трака за брзо покретање у СхареПоинт 2010

Већина страница у систему СхареПоинт 2010 приказује листу веза за навигацију на траци за брзо покретање дуж леве стране странице. Трака за брзо покретање приказује везе ка садржају истакнутог сајта као што су листе, библиотеке, сајтови и странице за објављивање. Трака за брзо покретање укључује две веома важне везе: Линк за сав садржај сајта: […]

Шта значе поруке о грешци решавача у Екцел-у?

Шта значе поруке о грешци решавача у Екцел-у?

За једноставне проблеме, Солвер у Екцел-у обично брзо проналази оптималне вредности променљиве Решавача за функцију циља. Али, у неким случајевима, Солвер има проблема да пронађе вредности променљиве Солвера које оптимизују функцију циља. У овим случајевима, Солвер обично приказује поруку или поруку о грешци која описује или расправља о проблему који […]

Како уклонити израчуната поља и ставке из Екцел заокретне табеле

Како уклонити израчуната поља и ставке из Екцел заокретне табеле

Можете лако да уклоните израчуната поља и ставке из Екцел заокретне табеле. Да бисте уклонили израчунато поље, кликните на ћелију у изведеној табели. Затим кликните на команду Поља, ставке и скупови на картици Анализа и изаберите Израчунато поље из подменија који се појави. Када Екцел прикаже дијалог Уметање израчунатог поља, изаберите […]

Како означити у СхареПоинт-у

Како означити у СхареПоинт-у

Ознаке су кључне речи које додељујете садржају. Означавање страница за дељење са другима је обележавање на друштвеним мрежама, веома је популарно на вебу и лако је у СхареПоинт-у. Ако сте икада користили сајт као што је Делициоус, већ знате како функционише обележавање на друштвеним мрежама. Како све више људи додељује исте ознаке, ознаке постају начин на који […]