Как использовать функцию электронной таблицы vba?

Ключевые примечания

  • Свойство WorksheetFunction можно использовать для доступа к функциям листа для использования в макросе.

Как использовать функцию рабочего листа в VBA при написании макроса

Выполните следующие шаги, чтобы использовать функцию рабочего листа в VBA.

  • Сначала укажите ячейку, в которую вы хотите вставить значения, возвращаемые функцией.
    worksheet-function-in-vba
  • После этого используйте знак равенства (=) и введите Application.WorksheetFunction (как вы уже можете сделать в приложении Excel, вы можете использовать только WorksheetFunction).
    use-an-equal-sign
  • Далее вам нужно ввести точку (.), и как только вы это сделаете, вы получите список функций, которые есть у вас в электронной таблице.
    you-need-to-enter-a-dot
  • Отсюда давайте воспользуемся функцией TextJoin, чтобы объединить текст в ячейках A1 и B1. Таким образом, вы используете функцию в электронной таблице; когда вы вводите начальные круглые скобки, отображаются аргументы, которые необходимо указать в ячейке.
    use-the-textjoin-function
  • Как вы можете видеть на скриншоте выше, он показывает аргумент, который вам нужно указать, но не имя аргумента. Поэтому вам нужно знать аргументы, прежде чем их использовать. Вот аргументы, которые вам нужно использовать в TextJoin.
    arguement-before-using-testjoin
  • Теперь давайте введем аргументы в функцию.
    enter-arguement-in-the-function
    1. разделитель: » «
    2. ignore_empty: Истина
    3. text1: Диапазон («A1»)
    4. 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

Но у второго метода есть преимущество. Он возвращает код ошибки вместо непосредственного отображения ошибки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *