Как да използвате функциите на VBA работен лист в Excel 2016

Въпреки че VBA предлага приличен асортимент от вградени функции, може да не винаги намерите точно това, от което се нуждаете. За щастие можете също да използвате повечето функции на работния лист на Excel във вашите VBA процедури. Единствените функции на работния лист, които не можете да използвате, са тези, които имат еквивалентна VBA функция. Например, не можете да използвате функцията RAND на Excel (която генерира произволно число), защото VBA има еквивалентна функция: Rnd.

VBA прави функциите на работния лист на Excel достъпни чрез обекта WorksheetFunction, който се съдържа в обекта Application. Ето пример за това как можете да използвате функцията SUM на Excel в изявление на VBA:

Общо = Application.WorksheetFunction.SUM(Обхват(“A1:A12”))

Можете да пропуснете или частта Application, или частта WorksheetFunction на израза. И в двата случая VBA разбира какво правите. С други думи, всички тези три израза работят абсолютно еднакво:

Общо = Application.WorksheetFunction.SUM(Обхват(“A1:A12”))
Общо = WorksheetFunction.SUM(Обхват(“A1:A12”))
Общо = Приложение.SUM(Обхват(“A1:A12”))

Личното ми предпочитание е да използвам частта WorksheetFunction, само за да стане напълно ясно, че кодът използва функция на Excel.

Примери за функции на работния лист

Тук ще откриете как да използвате функциите на работния лист във вашите VBA изрази.

Намиране на максимална стойност в диапазон

Ето пример, който показва как да използвате функцията MAX на работен лист на Excel във VBA процедура. Тази процедура показва максималната стойност в колона А на активния работен лист:

Как да използвате функциите на VBA работен лист в Excel 2016

Използване на функция на работен лист във вашия VBA код.

Sub ShowMax()
  Затъмнете TheMax като двойно
  TheMax = WorksheetFunction.MAX(Обхват(“A:A”))
  MsgBox TheMax
Край под

Можете да използвате функцията MIN, за да получите най-малката стойност в диапазон. И както може да очаквате, можете да използвате други функции на работния лист по подобен начин. Например, можете да използвате функцията LARGE, за да определите k -та най-голяма стойност в диапазон. Следният израз демонстрира това:

SecondHighest = WorksheetFunction.LARGE(Обхват(“A:A”),2)

Забележете, че функцията LARGE използва два аргумента. Вторият аргумент представлява k -тата част — 2, в този случай (втората по големина стойност).

Изчисляване на плащане по ипотека

Следващият пример използва функцията на работния лист PMT за изчисляване на ипотечно плащане. Три променливи се използват за съхраняване на данните, които се предават на функцията Pmt като аргументи. Съобщение показва изчисленото плащане.

Под PmtCalc()
  Dim IntRate като двойно
  Dim LoanAmt като двоен
  Мътни периоди толкова дълги
  IntRate = 0,0625 / 12
  Периоди = 30 * 12
  Сума на заема = 150 000
  MsgBox WorksheetFunction.PMT(IntRate, Periods, -LoanAmt)
Край под

Както показва следното изявление, можете също да вмъкнете стойностите директно като аргументи на функцията:

MsgBox WorksheetFunction.PMT(0,0625 /12, 360, -150000)

Въпреки това, използването на променливи за съхраняване на параметрите прави кода по-лесен за четене и модифициране, ако е необходимо.

Използване на функция за търсене

Следният пример използва функциите InputBox и MsgBox на VBA, плюс функцията VLOOKUP на Excel. Той подканва за номер на част и след това получава цената от справочна таблица. По-долу диапазонът A1:B13 е наречен Ценова листа.

Как да използвате функциите на VBA работен лист в Excel 2016

Гамата, наречена PriceList, съдържа цени за части.

Под GetPrice()
  Dim PartNum като вариант
  Дим цена като двойна
  PartNum = InputBox („Въведете номера на частта“)
  Таблици(“Цени”).Активирайте
  Цена = WorksheetFunction.VLOOKUP(PartNum, Range(“PriceList”), 2, False)
  MsgBox PartNum & „разходи“ и Цена
Край под

Ето как работи процедурата GetPrice:

  • Функцията InputBox на VBA пита потребителя за номер на част.

  • Номерът на частта, който потребителят въвежда, се присвоява на променливата PartNum.

  • Следващият оператор активира работния лист за цени, само в случай, че вече не е активният лист.

  • Кодът използва функцията VLOOKUP, за да намери номера на частта в таблицата.

  • Забележете, че аргументите, които използвате в този израз, са същите като тези, които бихте използвали с функцията във формула на работен лист. Този израз присвоява резултата от функцията на променливата Price.

  • Кодът показва цената за частта чрез функцията MsgBox.

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

Въвеждане на функции на работния лист

Не можете да използвате диалоговия прозорец Excel Paste Function, за да вмъкнете функция на работен лист в VBA модул. Вместо това въведете такива функции по старомоден начин: на ръка. Можете обаче да използвате диалоговия прозорец на функцията за поставяне, за да идентифицирате функцията, която искате да използвате, и да разберете за нейните аргументи.

Можете също да се възползвате от опцията Auto List Members на VBE, която показва падащ списък с всички функции на работния лист. Просто въведете Application.WorksheetFunction , последвано от точка. След това виждате списък с функциите, които можете да използвате. Ако тази функция не работи, изберете командата Инструменти → Опции на VBE, щракнете върху раздела Редактор и поставете отметка до Автоматични членове на списъка.

Как да използвате функциите на VBA работен лист в Excel 2016

Получаване на списък с функции на работния лист, които можете да използвате във вашия VBA код.

Повече за използването на функциите на работния лист

Новодошлите във VBA често бъркат вградените функции на VBA и функциите на работната книга на Excel. Добро правило, което трябва да запомните, е, че VBA не се опитва да преоткрие колелото. В по-голямата си част VBA не дублира функциите на работния лист на Excel.

За повечето функции на работен лист, които са недостъпни като методи на обекта WorksheetFunction, можете да използвате еквивалентен вграден оператор или функция на VBA. Например, функцията на работния лист MOD не е налична в обекта WorksheetFunction, тъй като VBA има еквивалент: неговия вграден оператор Mod.

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


Как да блокирате Microsoft Word да отваря файлове в режим само за четене в Windows

Как да блокирате Microsoft Word да отваря файлове в режим само за четене в Windows

Как да блокирам Microsoft Word да отваря файлове в режим само за четене в Windows Microsoft Word отваря файлове в режим само за четене, което прави невъзможно редактирането им? Не се притеснявайте, методите са по-долу

Как да коригирате неправилно отпечатване на документи на Microsoft Word

Как да коригирате неправилно отпечатване на документи на Microsoft Word

Как да коригирате грешки при отпечатването на неправилни документи на Microsoft Word Грешките при отпечатването на документи на Word с променени шрифтове, разхвърляни абзаци, липсващ текст или изгубено съдържание са доста чести. Въпреки това недейте

Изтрийте рисунки с писалка и маркер на вашите слайдове на PowerPoint

Изтрийте рисунки с писалка и маркер на вашите слайдове на PowerPoint

Ако сте използвали писалката или маркера, за да рисувате върху слайдовете на PowerPoint по време на презентация, можете да запазите чертежите за следващата презентация или да ги изтриете, така че следващия път, когато го покажете, да започнете с чисти слайдове на PowerPoint. Следвайте тези инструкции, за да изтриете чертежи с писалка и маркери: Изтриване на линии една в […]

Съдържание на библиотеката за стилове в SharePoint 2010

Съдържание на библиотеката за стилове в SharePoint 2010

Библиотеката със стилове съдържа CSS файлове, файлове с разширяем език на стиловия език (XSL) и изображения, използвани от предварително дефинирани главни страници, оформления на страници и контроли в SharePoint 2010. За да намерите CSS файлове в библиотеката със стилове на сайт за публикуване: Изберете Действия на сайта→Преглед Цялото съдържание на сайта. Появява се съдържанието на сайта. Библиотеката Style се намира в […]

Форматирайте числата в хиляди и милиони в отчети на Excel

Форматирайте числата в хиляди и милиони в отчети на Excel

Не затрупвайте аудиторията си с огромни числа. В Microsoft Excel можете да подобрите четливостта на вашите табла за управление и отчети, като форматирате числата си така, че да се показват в хиляди или милиони.

Как да споделяте и следвате сайтове на SharePoint

Как да споделяте и следвате сайтове на SharePoint

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

Как да конвертирате дати в юлиански формати в Excel

Как да конвертирате дати в юлиански формати в Excel

Юлианските дати често се използват в производствени среди като времеви печат и бърза справка за партиден номер. Този тип кодиране на дата позволява на търговците на дребно, потребителите и обслужващите агенти да идентифицират кога е произведен продуктът и по този начин възрастта на продукта. Юлианските дати се използват и в програмирането, военните и астрономията. Различно […]

Как да създадете уеб приложение на Access

Как да създадете уеб приложение на Access

Можете да създадете уеб приложение в Access 2016. И така, какво всъщност е уеб приложение? Е, уеб означава, че е онлайн, а приложението е просто съкращение от „приложение“. Персонализирано уеб приложение е онлайн приложение за база данни, достъпно от облака с помощта на браузър. Вие създавате и поддържате уеб приложението в настолната версия […]

Лента за бързо стартиране в SharePoint 2010

Лента за бързо стартиране в SharePoint 2010

Повечето страници в SharePoint 2010 показват списък с връзки за навигация в лентата за бързо стартиране в лявата част на страницата. Лентата за бързо стартиране показва връзки към представено съдържание на сайта, като списъци, библиотеки, сайтове и страници за публикуване. Лентата за бързо стартиране включва две много важни връзки: Връзка към цялото съдържание на сайта: […]

Какво означават съобщенията за грешка на Solver в Excel?

Какво означават съобщенията за грешка на Solver в Excel?

За прости проблеми Solver в Excel обикновено бързо намира оптималните стойности на променливата Solver за целевата функция. Но в някои случаи Solver има проблеми с намирането на стойностите на променливата Solver, които оптимизират целевата функция. В тези случаи Solver обикновено показва съобщение или съобщение за грешка, което описва или обсъжда проблема, който […]