Как использовать функцию электронной таблицы vba?
Ключевые примечания
- Свойство WorksheetFunction можно использовать для доступа к функциям листа для использования в макросе.
Как использовать функцию рабочего листа в VBA при написании макроса
Выполните следующие шаги, чтобы использовать функцию рабочего листа в VBA.
- Сначала укажите ячейку, в которую вы хотите вставить значения, возвращаемые функцией.
- После этого используйте знак равенства (=) и введите Application.WorksheetFunction (как вы уже можете сделать в приложении Excel, вы можете использовать только WorksheetFunction).
- Далее вам нужно ввести точку (.), и как только вы это сделаете, вы получите список функций, которые есть у вас в электронной таблице.
- Отсюда давайте воспользуемся функцией TextJoin, чтобы объединить текст в ячейках A1 и B1. Таким образом, вы используете функцию в электронной таблице; когда вы вводите начальные круглые скобки, отображаются аргументы, которые необходимо указать в ячейке.
- Как вы можете видеть на скриншоте выше, он показывает аргумент, который вам нужно указать, но не имя аргумента. Поэтому вам нужно знать аргументы, прежде чем их использовать. Вот аргументы, которые вам нужно использовать в TextJoin.
- Теперь давайте введем аргументы в функцию.
- разделитель: » «
- ignore_empty: Истина
- text1: Диапазон («A1»)
- text2: Диапазон («B1»)
Вот полный код.
Sub MyMacro() Range("A1") = _ Application.WorksheetFunction.TextJoin _ (" ", True, Range("A2"), Range("A3")) End Sub
Всего в VBA можно использовать 387 функций рабочих листов . Но есть некоторые функции (пример: LEFT ), которые недоступны.
Причина? В VBA есть встроенные функции , которые можно использовать при написании кода VBA. Давайте посмотрим, хотите ли вы использовать окно сообщения для получения значения функции. Допустим, вы хотите получить максимальное значение диапазона с именем «myValues».
Код будет:
Sub MyMacro() MsgBox Prompt:=WorksheetFunction.Max(Range("myValues")) End Sub
И вот как вы получаете окно сообщения:

Application.WorksheetFunction против приложения
Существует два разных способа обращения к функции рабочего листа. Ниже приведены две разные строки кода, выполняющие одно и то же действие.

Sub MyMacro() MsgBox Prompt:= _ Application.WorksheetFunction.Max(Range("myValues")) MsgBox Prompt:= _ Application.Max(Range("myValues")) End Sub
Но у второго метода есть преимущество. Он возвращает код ошибки вместо непосредственного отображения ошибки.