Як використовувати функції робочого аркуша 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.

Знаходження максимального значення в діапазоні

Ось приклад, який показує, як використовувати функцію робочого аркуша Excel MAX у процедурі VBA. Ця процедура відображає максимальне значення в стовпці A активного аркуша:

Як використовувати функції робочого аркуша VBA в Excel 2016

Використання функції робочого аркуша у вашому коді VBA.

Sub ShowMax()
  Приглушіть TheMax як подвійне
  TheMax = WorksheetFunction.MAX(Діапазон(“A:A”))
  MsgBox TheMax
Кінець суб

Ви можете використовувати функцію MIN, щоб отримати найменше значення в діапазоні. І, як ви могли очікувати, ви можете використовувати інші функції аркуша подібним чином. Наприклад, ви можете використовувати функцію LARGE для визначення k- го найбільшого значення в діапазоні. Наведений нижче вираз демонструє це:

Second Highest = WorksheetFunction.LARGE(Діапазон(“A:A”),2)

Зверніть увагу, що функція LARGE використовує два аргументи. Другий аргумент представляє k- ю частину — 2, у цьому випадку (друге за величиною значення).

Розрахунок іпотечного платежу

У наступному прикладі використовується функція робочого листа PMT для обчислення іпотечного платежу. Три змінні використовуються для зберігання даних, які передаються функції Pmt як аргументи. У вікні повідомлення відображається розрахований платіж.

Sub PmtCalc()
  Dim IntRate як подвійний
  Dim LoanAmt як подвійний
  Смутні періоди, як довгі
  IntRate = 0,0625 / 12
  Періоди = 30 * 12
  Сума позики = 150000
  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 містить ціни на запчастини.

Sub GetPrice()
  Dim PartNum як варіант
  Димна ціна як подвійна
  PartNum = InputBox ("Введіть номер частини")
  Таблиці («Ціни»). Активувати
  Ціна = WorksheetFunction.VLOOKUP(PartNum, Range(“PriceList”), 2, False)
  MsgBox PartNum & « витрати » & Price
Кінець суб

Ось як працює процедура 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.

Leave a Comment

Як спілкуватися в чаті в Outlook Web App

Як спілкуватися в чаті в Outlook Web App

Досліджуйте, як ефективно спілкуватися в чаті з колегами в Outlook Web App. Дізнайтеся про покрокову інструкцію та нові можливості для підвищення продуктивності.

Як заборонити 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 відображають список посилань навігації на панелі швидкого запуску ліворуч. Панель швидкого запуску відображає посилання на пропонований вміст сайту, наприклад списки, бібліотеки, сайти та сторінки публікації. Панель швидкого запуску містить два дуже важливі посилання: Посилання на весь вміст сайту: […]