Використання функцій аркуша в макросі - приклади коду VBA

Існує багато способів використання функцій у VBA. VBA поставляється з багатьма вбудованими функціями. Ви навіть можете створити власні функції (UDF). Однак ви також можете використовувати багато функцій Excel у VBA за допомогою Application.WorksheetFunction.

Як користуватися функціями аркуша у VBA

Щоб отримати доступ до функції Excel у VBA, додайте Application.WorksheetFunction перед функцією, яку потрібно викликати. У наведеному нижче прикладі ми викличемо максимальну функцію Excel:

12 Приглушити максимальне значення до тих пірmaxvalue = Application.WorksheetFunction.Max (Діапазон ("a1"). Значення, Діапазон ("a2"). Значення)

Синтаксис функцій однаковий, проте ви вводите аргументи функції так само, як і будь -яку іншу функцію VBA.

Зверніть увагу, що синтаксис функції Max з’являється під час введення тексту (подібно до функцій VBA):

Метод функціонування аркуша

WorksheetFunction - це метод об'єкта Application. Він дозволяє отримати доступ до багатьох (не всіх) стандартних функцій робочого аркуша Excel. Як правило, ви не отримаєте доступу до будь -яких функцій аркуша, які мають відповідну версію VBA.

Нижче ви можете побачити список багатьох найпоширеніших функцій аркуша.

Робота на робочому аркуші проти програми

Насправді є два способи доступу до цих функцій:

Application.WorksheetFunction (як показано вище):

1 maxvalue = Application.WorksheetFunction.Max (Діапазон ("a1"). Значення, Діапазон ("a2"). Значення)

або ви можете опустити функцію аркуша

1 maxvalue = Application.Max (Діапазон ("a1"). Значення, діапазон ("a2"). Значення)

На жаль, опускання функції WorksheetFunction усуне Intellisense, що відображає синтаксис (див. Зображення вище). Однак у нього є одна велика потенційна перевага: Обробка помилок.

Якщо ви використовуєте програму, і ваша функція генерує помилку, вона поверне значення помилки. Якщо ви використовуєте метод WorksheetFunction, VBA видасть помилку часу виконання. Звичайно, ви можете впоратися з помилкою VBA, але зазвичай краще уникати помилки.

Давайте розглянемо приклад, щоб побачити різницю:

Обробка помилок робочого аркуша Vlookup

Ми спробуємо виконати Vlookup, який не призведе до відповідності. Тож функція Vlookup поверне помилку.

Спочатку ми будемо використовувати метод WorksheetFunction. Зверніть увагу, як VBA видає помилку:

Далі ми опускаємо функцію WorksheetFunction. Зверніть увагу, як

Далі ми опустимо функцію WorksheetFunction. Зверніть увагу, як помилка не видається, і замість цього функція "значення" містить значення помилки з Vlookup.

Список функцій робочого аркуша VBA

Нижче ви знайдете список більшості поширених функцій робочого аркуша VBA.

ФункціяОпис
Логічний
ІПеревіряє, чи виконуються всі умови. ІСТИНА/НЕВІРНА
ІФЯкщо умова виконана, зробіть щось, якщо ні, зробіть щось інше.
ПОМИЛКАЯкщо результат - помилка, зробіть щось інше.
АБОПеревіряє, чи виконуються якісь умови. ІСТИНА/НЕВІРНА
Пошук та довідка
ВИБРАТИВибирає значення зі списку на основі номера позиції.
ПЕРЕВІРКАЗнайдіть значення у першому рядку та поверніть значення.
ІНДЕКСПовертає значення на основі номерів стовпців і рядків.
ПЕРЕГЛЯНУТИШукає значення горизонтально або вертикально.
МАТЧШукає значення у списку та повертає його позицію.
ТРАНСПОЗИЦІЯПеревертає орієнтацію діапазону клітинок.
VLOOKUPЗнайдіть значення у першому стовпці та поверніть значення.
Дата, час
ДАТАПовертає дату з року, місяця та дня.
ДАТЕВАЛЬНІСТЬПеретворює дату, збережену у вигляді тексту, в дійсну дату
ДЕНЬПовертає день як число (1-31).
ДНИ 360Повертає дні між 2 датами в 360 -денному році.
ЗМІНИТИПовертає дату, що проходить через n місяців від дати початку.
EOMONTHПовертає останній день місяця за п. Місяців.
ГОДИНАПовертає годину як число (0-23).
ХВИЛИНАПовертає хвилину як число (0-59).
МІСЯЦЬПовертає місяць як число (1-12).
МЕРЕЖІКількість робочих днів між 2 датами.
NETWORKDAYS.INTLРобочі дні між 2 датами, вихідні на замовлення.
ЗАРАЗПовертає поточну дату та час.
ДРУГИЙПовертає друге як число (0-59)
ЧАСПовертає час від години, хвилини та секунди.
ЧАСПеретворює час, що зберігається у вигляді тексту, в дійсний час.
ТИДЕНЬПовертає день тижня як число (1-7).
WEEKNUMПовертає номер тижня за рік (1-52).
РОБОЧИЙ ДЕНЬДата n робочих днів з дати.
РОКПовертає рік.
РІКПовертає частку року між 2 датами.
Інженерія
КОНВЕРТУВАТИПеретворення числа з однієї одиниці в іншу.
Фінансові
ФВРозраховує майбутню вартість.
PVРозраховує поточну вартість.
NPERОбчислює загальну кількість періодів оплати.
PMTРозраховує суму платежу.
RATEРозраховує процентну ставку.
NPVРозраховує чисту теперішню вартість.
IRRВнутрішня норма прибутку для набору періодичних CF.
XIRRВнутрішня норма прибутку для набору неперіодичних CF.
ЦІНАРозраховує ціну облігації.
ІНТЕРАЦІЯПроцентна ставка повністю вкладеного цінного паперу.
Інформація
ISERRПеревірте, чи є значення комірки помилкою, ігнорує #Н/Д. ІСТИНА/НЕВІРНА
ПОМИЛКАПеревірте, чи є значення комірки помилкою. ІСТИНА/НЕВІРНА
НЕЗАБАВЛЕНОПеревірте, чи є значення клітинки парним. ІСТИНА/НЕВІРНА
ІСЛОГІЧНИЙПеревірте, чи комірка логічна (TRUE або FALSE). ІСТИНА/НЕВІРНА
ISNAПеревірте, чи є значення комірки #Н/Д. ІСТИНА/НЕВІРНА
ISNONTEXTПеревірте, чи клітинка не є текстом (порожні клітинки не є текстом). ІСТИНА/НЕВІРНА
ISNUMBERПеревірте, чи є комірка числом. ІСТИНА/НЕВІРНА
ISODDПеревірте, чи є значення комірки непарним. ІСТИНА/НЕВІРНА
ISTEXTПеревірте, чи комірка - це текст. ІСТИНА/НЕВІРНА
ТИППовертає тип значення в клітинку.
Математика
АБСОбчислює абсолютне значення числа.
АГРЕГАТВизначте та виконайте обчислення для бази даних або списку.
СТАЛАОкруглює число до найближчого заданого кратного.
COSПовертає косинус кута.
СТУПЕНІПеретворює радіани в градуси.
DSUMСуми записів бази даних, які відповідають певним критеріям.
НАВІТЬОкруглює до найближчого парного цілого числа.
EXPОбчислює експоненційне значення для даного числа.
ФАКТПовертає множник.
ПОВЕРХОкруглює число вниз до найближчого зазначеного кратного.
GCDПовертає найбільший загальний дільник.
INTОкруглює число до найближчого цілого числа.
LCMПовертає найменше спільне кратне.
LNПовертає натуральний логарифм числа.
ЖурналПовертає логарифм числа до вказаної основи.
LOG10Повертає логарифм числа з базою-10.
ГРУНДОкруглює число до заданого кратного.
ODDОкруглює до найближчого непарного цілого числа.
PIЗначення ПІ.
ПОТУЖНІСТЬОбчислює число, піднесене до степеня.
ПРОДУКТМножить масив чисел.
КОЛИЧНЕПовертає цілий результат ділення.
РАДІАНИПеретворює кут в радіани.
РАНДТЕЖОбчислює випадкове число між двома числами.
КРУГЛИЙОкруглює число до певної кількості цифр.
РАУНДУНДОкруглює число вниз (до нуля).
ОГЛЯДОкруглює число вгору (від нуля).
ГРІХПовертає синус кута.
ПІДСУМКИПовертає підсумкову статистику для ряду даних.
SUMДодає числа разом.
SUMIFСуми, які відповідають критеріям.
ПІДСУМКИСуми, які відповідають кільком критеріям.
ВИХОДИМножить масиви чисел і підсумовує отриманий масив.
TANПовертає тангенс кута.
Статистика
СЕРЕДНЯСередні цифри.
СЕРЕДНЯСередні цифри, що відповідають критеріям.
СЕРЕДНІСередні цифри, які відповідають кільком критеріям.
КОРРЕЛЬОбчислює співвідношення двох рядів.
РАХУВАТИПідраховує клітинки, які містять число.
КОНТАПідрахувати клітинки, які не є порожніми.
COUNTBLANKПідраховує порожні клітинки.
COUNTIFПідраховує клітини, які відповідають критеріям.
СЧІТКИПідраховує клітини, які відповідають кільком критеріям.
ПРОГНОЗПередбачте майбутні значення y з лінійної лінії тренду.
ЧАСТОТАПідраховує значення, які потрапляють у задані діапазони.
ЗРОСТАННЯОбчислює значення Y на основі експоненційного зростання.
ПЕРЕХОДОбчислює перехоплення Y для лінії, яка найкраще підходить.
ВЕЛИКИЙПовертає k -е найбільше значення.
LINESTПовертає статистику про лінію тренда.
МАКСПовертає найбільше число.
СЕРЕДНЯПовертає середнє число.
ХВПовертає найменше число.
РЕЖИМПовертає найпоширеніший номер.
ПЕРЦЕНЦІЛЬНИЙПовертає k -й процентиль.
PERCENTILE.INCПовертає k -й процентиль. Де k включно.
PERCENTILE.EXCПовертає k -й процентиль. Де k - виключний.
КВАРТИЛЬНИЙПовертає вказане значення квартилю.
QUARTILE.INCПовертає вказане значення квартилю. Включно.
QUARTILE.EXCПовертає вказане значення квартилю. Ексклюзивно.
РАНГРанг числа в серії.
RANK.AVGРанг числа в серії. Середні показники.
RANK.EQРанг числа в серії. Найвищий ранг.
НАКЛОНОбчислює нахил за лінійною регресією.
МАЛЕНЬКИЙПовертає k -е найменше значення.
СТДЕВОбчислює стандартне відхилення.
STDEV.PОбчислює SD всієї сукупності.
STDEV.SОбчислює SD зразка.
STDEVPОбчислює SD всієї сукупності
ТРЕНДОбчислює значення Y на основі лінії тренду.
Текст
ЧИСТИЙВидаляє всі недруковані символи.
ДОЛЛАРПеретворює число в текст у валютному форматі.
ЗНАЙТИРозташовує позицію тексту всередині комірки.
ВЛІВОУрізає текст кількома символами зліва.
LENПідраховує кількість символів у тексті.
MIDВитягує текст із середини комірки.
ВЛАСНОПеретворює текст у належний регістр.
ЗАМІНИТИЗамінює текст залежно від його розташування.
REPTПовторює текст кілька разів.
ПРАВОУрізає текст кількома символами праворуч.
ПОШУКРозташовує позицію тексту всередині комірки. Не чутливий до регістру.
ЗАМІНАЗнаходить і замінює текст. З урахуванням регістру
ТЕКСТПеретворює значення в текст із певним числовим форматом.
ТРИМВидаляє всі зайві пробіли з тексту.
wave wave wave wave wave