Функции на работен лист във VBA макроси, използващи VBA в Microsoft Excel

Anonim

Във 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.
Ще се радваме да чуем от вас, уведомете ни как можем да подобрим, допълним или обновим работата си и да я подобрим. Пишете ни на имейл сайт