Водич за почетнике о писању ВБА макроа у Екцелу (и зашто бисте требали научити)

Водич за почетнике о писању ВБА макроа у Екцелу (и зашто бисте требали научити)

Екцел макрои могу вам уштедети много времена аутоматизовање Екцел процеса које често користите . Али макрои су заправо прилично ограничени. Лако је погрешити са алатом за снимање, а процес снимања је незгодан.





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





Почећемо са основама.





Шта је ВБА?

ВБА је Висуал Басиц за апликације , програмски језик који можете користити у многим Мицрософт апликацијама. Висуал Басиц је програмски језик, а ВБА је верзија за апликацију. (Мицрософт је обуставио Висуал Басиц 2008. године, али ВБА и даље напредује).

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



Ипак, на ВБА је потребно неко време да се навикне.

Предности ВБА макроа у Екцелу

Ако је ВБА тежи од снимања макроа, зашто бисте га користили? Кратак одговор је да добијате много више снаге из ВБА макроа.





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

зашто хром користи толико процесора

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





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

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

Пример ВБА макроа у Екцелу

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

Овај макро ће додати кварталну продају из сваке продавнице и уписати те укупне износе у ћелије у табели (ако нисте сигурни како приступити ВБА дијалогу, погледајте наш водич кроз ВБА овде ):

Sub StoreSales()
Dim Sum1 As Currency
Dim Sum2 As Currency
Dim Sum3 As Currency
Dim Sum4 As Currency
For Each Cell In Range('C2:C51')
Cell.Activate
If IsEmpty(Cell) Then Exit For
If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If
Next Cell

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

End Sub

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

Декларисање Суб

На почетку модула имамо 'Суб СтореСалес ()'. Ово дефинише нову подмену под називом СтореСалес.

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

На крају модула имамо 'Енд Суб', који говори Екцелу да смо завршили са овим ВБА макроном.

Декларисање променљивих

Први редови кода у нашој скрипти почињу са 'Дим'. Дим је ВБА наредба за декларисање променљиве.

Дакле, 'Дим Сум1' ствара нову променљиву под називом 'Сум1.' Међутим, морамо Екцел -у рећи о каквој се променљивој ради. Морамо да изаберемо тип података. У ВБА постоји много различитих типова података --- можете пронаћи потпуну листу у Мицрософт -овим документима за помоћ .

Будући да ће се наш ВБА макро бавити валутама, користимо тип података Валута.

Изјава „Дим Сум1 као валута“ говори Екцелу да створи нову променљиву валуте која се зове Сум1. Свака променљива коју декларишете мора имати израз „Ас“ да би Екцел -у рекао њен тип.

Покретање фор петље

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

Ево како петља изгледа:

For Each Cell in Range('C2:C51')
[a bunch of stuff]
Next Cell

Ово говори Екцелу да понавља кроз ћелије у опсегу који смо навели. Користили смо а Објекат домета , који је специфичан тип објекта у ВБА. Када га користимо на овај начин --- Опсег ('Ц2: Ц51') --- он говори Екцелу да смо заинтересовани за тих 50 ћелија.

„За сваки“ говори Екцелу да ћемо учинити нешто са сваком ћелијом у опсегу. „Следећа ћелија“ долази после свега што желимо да урадимо и говори Екцелу да започне петљу од почетка (почевши од следеће ћелије).

Такође имамо ову изјаву: 'Иф ИсЕмпти (Целл) тхен Екит Фор.'

Можете ли погодити шта ради?

Белешка: Строго-говорећи, коришћење петље Вхиле могло је бити бољи избор . Међутим, ради поуке, одлучио сам да користим Фор петљу са Екит -ом.

како извршити гласовни прелазак на тикток

Изјаве Ако-онда-Остало

Језгро овог макроа је у наредбама Иф-Тхен-Елсе. Ево нашег низа условних изјава:

If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If

У већини случајева, вероватно можете погодити чему служе ове изјаве. Можда ипак нисте упознати са АцтивеЦелл.Оффсет. 'АцтивеЦелл.Оффсет (0, -1)' говори Екцелу да погледа ћелију која је једна колона лево од активне ћелије.

У нашем случају, то говори Екцелу да погледа колону са бројем продавнице. Ако Екцел пронађе 1 у овој колони, тада узима садржај активне ћелије и додаје га у Сум1. Ако пронађе 2, додаје садржај активне ћелије у Сум2. И тако даље.

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

Комбинација петље и кондиционала покреће овај макро. Петља говори Екцелу да прође кроз сваку ћелију у одабиру, а условни услови јој говоре шта да ради са том ћелијом.

Записивање вредности ћелија

Коначно, резултате наших прорачуна записујемо у ћелије. Ево редова које користимо за то:

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

Са '.Валуе' и знаком једнакости, сваку од тих ћелија постављамо на вредност једне од наших променљивих.

И то је то! Рекли смо Екцелу да смо завршили са писањем овог Суб -а са „Енд Суб“ и да је ВБА макро завршен.

Када покренемо макро са Макрои дугме у Девелопер картицу, добијамо наше суме:

Састављање градивних елемената ВБА у Екцелу

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

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

Када заглавите, покретање Гоогле претраге је брз начин да добијете одговоре на своја ВБА питања. И Мицрософт ВБА референца за Екцел може бити од помоћи ако сте вољни да истражите технички одговор.

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

како покренути лаптоп са затвореним поклопцем
Објави Објави Твеет Емаил Ево зашто је ФБИ издао упозорење за откупни софтвер у кошницама

ФБИ је издао упозорење о посебно гадној врсти рансомвареа. Ево зашто морате бити посебно опрезни са Хиве рансомваре -ом.

Прочитајте следеће
Повезане теме
  • Продуктивност
  • Табела
  • Мицрософт Екцел
  • Мицрософт Оффице 2016
  • Макрои
  • Кодирање Туториали
О аутору Затим Олбрајтова(Објављено 506 чланака)

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

Више од Данна Олбрајта

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

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