Урок за начинаещи за писане на VBA макроси в Excel (и защо трябва да се научите)

Урок за начинаещи за писане на VBA макроси в Excel (и защо трябва да се научите)

Макросите на Excel могат да ви спестят много време автоматизиране на Excel процеси, които използвате често . Но макросите всъщност са доста ограничени. Лесно е да направите грешка с инструмента за запис, а процесът на запис е неудобен.





Използването на VBA за създаване на макроси ви дава много повече мощ. Можете да кажете на Excel точно какво да правите и как да го направите. Освен това получавате достъп до много повече функции и възможности. Ако използвате Excel редовно, струва си да научите как да създавате VBA макроси.





Ще започнем с основите.





Какво е VBA?

VBA е Visual Basic за приложения , език за програмиране, който можете да използвате в много приложения на Microsoft. Visual Basic е език за програмиране, а VBA е неговата специфична за приложението версия. (Microsoft прекрати Visual Basic през 2008 г., но VBA все още е силен).

За щастие на непрограмистите, VBA е много прост и интерфейсът, който използвате, за да го редактирате, предлага много помощ. Много от командите, които ще използвате изскачащи предложения и автоматични завършвания, помагат ви да накарате вашия скрипт да работи бързо.



Все пак VBA отнема известно време, за да свикне.

Предимствата на VBA макросите в Excel

Ако VBA е по -трудно от записването на макрос, защо бихте го използвали? Краткият отговор е, че получавате много повече енергия от VBA макросите.





Вместо да щраквате върху електронната си таблица и да записвате тези кликвания, можете да получите достъп до пълния набор от функции и възможности на Excel. Просто трябва да знаете как да ги използвате.

как да направите игра roblox

И след като сте по -удобни с VBA, можете да правите всички неща, които бихте могли да правите в обикновен макрос за много по -малко време. Резултатите също ще бъдат по -предвидими, както казвате на Excel точно какво да правя. Изобщо няма неяснота.





След като създадете своя VBA макрос, лесно можете да го запазите и споделите, така че всеки друг да може да се възползва от него. Това е особено полезно, когато работите с много хора, които трябва да правят същите неща в Excel.

Нека да разгледаме един прост VBA макрос, за да видим как работи.

Пример за VBA макрос в Excel

Нека да разгледаме един прост макрос. Нашата електронна таблица съдържа имена на служители, номер на магазин, където работят служителите, и техните тримесечни продажби.

Този макрос ще добави тримесечните продажби от всеки магазин и ще запише тези суми в клетки в електронната таблица (ако не сте сигурни как да получите достъп до диалоговия прозорец VBA, проверете нашето VBA преход тук ):

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

Това може да изглежда дълго и сложно, но ще го разбием, за да можете да видите отделните елементи и да научите малко за основите на VBA.

Деклариране на подс

В началото на модула имаме „Sub StoreSales ()“. Това определя нова подкана, наречена StoreSales.

Можете също така да дефинирате функции --- разликата е, че функциите могат да връщат стойности, а subs не могат (ако сте запознати с други езици за програмиране, subs са еквивалент на методи). В този случай не е необходимо да връщаме стойност, затова използваме под.

В края на модула имаме „End Sub“, който казва на Excel, че сме приключили с този макрос VBA.

Деклариране на променливи

Първите редове код в нашия скрипт започват с „Dim“. Dim е командата на VBA за обявяване на променлива.

Така „Dim Sum1“ създава нова променлива, наречена „Sum1“. Трябва обаче да кажем на Excel каква е тази променлива. Трябва да изберем тип данни. Има много различни типове данни във VBA --- можете да намерите пълен списък в помощните документи на Microsoft .

Тъй като нашият макрос VBA ще се занимава с валути, ние използваме типа данни Валута.

Изявлението „Dim Sum1 As Currency“ казва на Excel да създаде нова променлива за валута, наречена Sum1. Всяка променлива, която декларирате, трябва да има израз „As“, за да съобщи на Excel нейния тип.

Стартиране на For Loop

Цикли са едни от най -мощните неща, които можете да създадете във всеки език за програмиране. Ако не сте запознати с цикли, вижте това обяснение на цикли Do-While. В този пример използваме цикъл For, който също е обхванат в статията.

Ето как изглежда цикълът:

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

Това казва на Excel да прави повторение през клетките в посочения от нас диапазон. Използвахме a Обект на обхват , който е специфичен тип обект във VBA. Когато го използваме по този начин --- Диапазон ('C2: C51') --- той казва на Excel, че се интересуваме от тези 50 клетки.

„За всеки“ казва на Excel, че ще направим нещо с всяка клетка в диапазона. Следващата клетка идва след всичко, което искаме да направим, и казва на Excel да започне цикъла от началото (започвайки със следващата клетка).

Имаме и това изявление: „Ако IsEmpty (клетка), тогава излезте за.“

Можете ли да познаете какво прави?

Забележка: Строго погледнато, използването на цикъл While може да е бил по -добър избор . Въпреки това, за да преподавам, реших да използвам цикъл For с изход.

как да намерите заглавие на книга, когато не можете да си спомните

Изявления „Ако-тогава-друго“

Ядрото на този конкретен макрос е в изразите If-Then-Else. Ето нашата последователност от условни изявления:

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

В по -голямата си част вероятно можете да предположите какво правят тези изявления. Възможно е обаче да не сте запознати с ActiveCell.Offset. „ActiveCell.Offset (0, -1)“ казва на Excel да разгледа клетката, която е една колона вляво от активната клетка.

В нашия случай това казва на Excel да се консултира с колоната с номера на магазина. Ако Excel намери 1 в тази колона, той взема съдържанието на активната клетка и го добавя към Sum1. Ако намери 2, той добавя съдържанието на активната клетка към Sum2. И така нататък.

Excel преминава през всички тези изявления по ред. Ако условно изявление е удовлетворен, той завършва оператора Then. Ако не, той се премества в следващия ElseIf. Ако стигне докрай и нито едно от условията не е изпълнено, няма да предприеме никакви действия.

Комбинацията от цикъла и условията е това, което задвижва този макрос. Цикълът казва на Excel да премине през всяка клетка в селекцията, а условията му казват какво да прави с тази клетка.

Записване на клетъчни стойности

И накрая, можем да запишем резултатите от нашите изчисления в клетките. Ето редовете, които използваме за това:

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

С '.Value' и знак за равенство, ние задаваме всяка от тези клетки на стойността на една от нашите променливи.

И това е! Казваме на Excel, че сме приключили с писането на този Sub с „End Sub“ и макросът VBA е завършен.

Когато стартираме макроса с Макроси бутон в Разработчик раздел, получаваме нашите суми:

Събиране на градивни елементи на VBA в Excel

Когато за първи път погледнете макроса VBA по -горе, той изглежда доста сложен. Но след като го разбием на съставните му части, логиката става ясна. Както всеки скриптов език, отнема време, за да свикнете със синтаксиса на VBA.

Но с практиката ще изградите своя VBA речник и ще можете да пишете макроси по -бързо, по -точно и с много по -голяма мощност, отколкото бихте могли да ги запишете.

Когато се забиете, пускането на търсене в Google е бърз начин да получите отговор на вашите VBA въпроси. И Справка за Excel VBA на Microsoft може да бъде полезно, ако сте готови да копаете в него за технически отговор.

След като се запознаете с основите, можете да започнете да използвате VBA за неща като изпращане на имейли от Excel , експортиране на задачи на Outlook и показване на информацията за вашия компютър.

Amazon казва, че пакетът е доставен, но не го получих
Дял Дял Туит електронна поща Ето защо ФБР е издало предупреждение за кошери Ransomware

ФБР издаде предупреждение за особено гаден вид рансъмуер. Ето защо трябва да сте особено предпазливи към рансъмуера на Hive.

Прочетете Напред
Свързани теми
  • Производителност
  • Електронна таблица
  • Microsoft Excel
  • Microsoft Office 2016
  • Макроси
  • Уроци по кодиране
За автора Тогава Олбрайт(506 статии са публикувани)

Дан е консултант по стратегия за съдържание и маркетинг, който помага на компаниите да генерират търсене и потенциални клиенти. Той също така блогове за стратегия и маркетинг на съдържанието на dannalbright.com.

Още от Дан Олбрайт

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате