Във VBA код, ако трябва да се позовавате на определени функции на работен лист като Sum, Vlookup и т.н., можете да ги използвате директно, като използвате обекта Application. Така че ще използваме функциите като -
Application.WorksheetFunction.Sum или Application.WorksheetFunction.Vlookup където WorksheetFunction е методът на обекта Application.
Като се има предвид, че имаме този тестов макрос, ако въведем
Приложение.Функция на работен лист.
Ще получим изскачащ прозорец, показващ формулите, посочени по -долу на изображението
Така например, ако искате да сумирате стойностите на този диапазон в колона А, използвайки vba -
Нека имаме променлива, наречена SalesTotal, която ще запише сумата в нея. За да получим обща сума в SalesTotal, ще използваме следния код VBA в стандартния модул:
Подмакрос4 ()Dim SalesTotal As Long
SalesTotal = Application.WorksheetFunction.Sum (Диапазон ("A2: A6"))
MsgBox SalesTotal
End Sub
За да копирате горния код във вашия файл,
- Натиснете Alt + F11 на клавиатурата.
- От лявата страна ще видите Microsoft Excel Objects.
- Щракнете с десния бутон и изберете Вмъкване.
- След това щракнете върху Модул.
- Копирайте кода в кодовия прозорец вдясно.
Когато използваме този примерен макрос, ще получим съобщение, показващо стойността, която се съхранява в Sales Total и може да се използва в допълнителни кодови редове в макроса.
Резултатът, който ще получим е -
Ако искате SalesTotal да се показва в клетка A7, тогава можете да промените кодовия ред от
Msgbox SalesTotalда се Работни листове („Sheet1“). Диапазон („A7“). Стойност = SalesTotal
Като се има предвид, че се нуждаем и от средните продажби за тези цифри в клетка А9. Можем да използваме кода по -долу
Подмакрос5 ()Dim SalesTotal As Long
С работни листове („Лист1“)
SalesTotal = Application.WorksheetFunction.Sum (.Range ("A2: A6"))
.Range ("A7"). Стойност = SalesTotal
.Range ("A9"). Value = Application.WorksheetFunction.Average (.Range ("A2: A6"))
Край с
End Sub
В този код има леки промени в сравнение с предишния.
- Вместо да използвам променлива за Средно, директно попълних тази стойност след изчислението в клетка A9. Следователно ще видите реда .Range (“A9”). Value = Application.WorksheetFunction.Average (.Range (“A2: A6”))
- Редът на msgbox е премахнат.
- Стойността в променливата SalesTotal отива в клетка A7.
- В идеалния случай можете да повторите същия код, който е бил използван за средната стойност, за кодовия ред Sum, като го замените
SalesTotal = Application.WorksheetFunction.Sum (.Range (“A2: A6”))
.Range („A7“). Стойност = SalesTotal
С
.Range (“A7”). Value = Application.WorksheetFunction.Sum (.Range (“A2: A6”))
Той обаче е запазен, за да можете да разберете различните начини за кодиране на една и съща задача. По същия начин можем да използваме други функции, докато използваме Application.WorksheetFunction. Всички тези функции, които можем да използваме директно в работния лист, можем да ги използваме тук.
Това улеснява използването на функциите в кода, за да можем да изчислим необходимите формули, без да се налага да създаваме код за формулата.
Ако ви харесаха нашите блогове, споделете го с приятелите си във Facebook. Можете също така да ни следвате в Twitter и Facebook.
Ще се радваме да чуем от вас, уведомете ни как можем да подобрим, допълним или обновим работата си и да я подобрим. Пишете ни на имейл сайт