Как создавать пользовательские функции в Microsoft Excel

Оглавление:

Как создавать пользовательские функции в Microsoft Excel
Как создавать пользовательские функции в Microsoft Excel

Видео: Как создавать пользовательские функции в Microsoft Excel

Видео: Как создавать пользовательские функции в Microsoft Excel
Видео: Всегда ПЫШНЫЙ ОМЛЕТ из 2х ингредиентов! Без жира, муки и духовки! Всегда получается! 2024, Ноябрь
Anonim

Хотя в Excel уже есть сотни встроенных функций, таких как СУММ, ВПР, ВЛЕВО и т. Д., Доступных встроенных функций обычно недостаточно для выполнения довольно сложных задач. Однако не беспокойтесь, потому что вам нужно только создать необходимые функции самостоятельно.

Шаг

Создание пользовательской функции в Microsoft Excel Шаг 1
Создание пользовательской функции в Microsoft Excel Шаг 1

Шаг 1. Создайте новую книгу или откройте книгу, которую вы хотите обработать с помощью пользовательских функций (UDF)

Создание пользовательской функции в Microsoft Excel, шаг 2
Создание пользовательской функции в Microsoft Excel, шаг 2

Шаг 2. Откройте редактор Visual Basic в Microsoft Excel через Инструменты-> Макро-> Редактор Visual Basic (или нажмите сочетание клавиш Alt + F11)

Создание пользовательской функции в Microsoft Excel Шаг 3
Создание пользовательской функции в Microsoft Excel Шаг 3

Шаг 3. Нажмите кнопку «Модуль», чтобы добавить новый модуль на рабочий лист

Вы можете создать UDF в книге, не добавляя новый модуль, но эта функция не будет работать на других листах в той же книге.

Создание пользовательской функции в Microsoft Excel Шаг 4
Создание пользовательской функции в Microsoft Excel Шаг 4

Шаг 4. Создайте «голову» или «прототип» вашей функции

Прототип функции должен иметь следующую структуру:

публичная функция «Имя функции» (параметр1 как тип1, параметр2 как тип2) как тип результата.

Прототипы могут иметь как можно больше функций, и их типы могут быть всеми основными типами данных или типами объектов Excel в форме Range. Вы можете думать о параметрах как о «оперантах» (операторах), над которыми будет действовать функция. Например, когда вы пишете SIN (45) для вычисления синуса 45 градусов, число 45 будет принято в качестве параметра. Затем код функции будет использовать эти значения для выполнения вычислений и отображения результатов.

Создание пользовательской функции в Microsoft Excel Шаг 5
Создание пользовательской функции в Microsoft Excel Шаг 5

Шаг 5. Добавьте код функции, чтобы убедиться, что вы: 1) используете значение, заданное параметром; 2) передать результат в имя функции; и 3) закройте функцию предложением «конечная функция».. Обучение программированию на VBA или на любом другом языке требует много времени и подробных инструкций. К счастью, эти функции обычно имеют небольшие блоки кода и мало используют возможности языка программирования. Вот некоторые элементы языка VBA, которые можно использовать:

  1. Блок If (if), который позволяет выполнить часть кода только при выполнении условия. В качестве примера:
  2. Результат курса публичной функции (как целочисленное значение) как строка

    Если значение> = 5 Тогда

    Результаты курса = "Принято"

    Еще

    Результаты курса = "Отклонено"

    Конец, если

    Конечная функция

    Обратите внимание на элементы в блоке кода If:

    Условие ЕСЛИ ТО код ELSE код КОНЕЦ ЕСЛИ

  3. . Вы можете опустить ключевое слово Else вместе со второй частью кода, так как это необязательно.
  4. Блок Do (do), который выполняет часть кода «Пока» или «До», когда или до тех пор, пока не будет выполнено условие. В качестве примера:
  5. Открытая функция BilPrima (значение как целое число) как логическое

    Dim i как целое число

    я = 2

    БилПрима = Истина

    Делать

    Если value / i = Int (value / i) Тогда

    БилПрима = Ложь

    Конец, если

    я = я + 1

    Цикл, пока я <значение и NumberPrima = True

    Конечная функция

    Посмотрите еще раз на элементы:

    Код DO LOOP WHILE / UNTIL условие

  6. . Также обратите внимание на вторую строку, которая «объявляет» переменную. Вы можете добавлять переменные в свой код для дальнейшего использования. Переменные действуют в коде как временные значения. Наконец, рассмотрите объявление функции как BOOLEAN, который является типом данных, который допускает только значения TRUE или FALSE. Этот метод определения простых чисел далек от оптимального, но код написан таким образом, чтобы его было легко читать.
  7. Для блока (to), который выполняет определенный объем кода. В качестве примера:
  8. Факториал публичной функции (значение как целое число) до тех пор, пока

    Тусклые результаты до тех пор, пока

    Dim i как целое число

    Если значение = 0 Тогда

    результат = 1

    ElseIf value = 1 Тогда

    результат = 1

    Еще

    результат = 1

    Для i = 1 По значению

    результат = результат * я

    Следующий

    Конец, если

    Факториал = результат

    Конечная функция

    Посмотрите еще раз на элементы:

    FOR переменная = нижний предел TO верхний предел кода NEXT

    . Также обратите внимание на дополнительный элемент ElseIf в операторе If, который позволяет добавлять дополнительные параметры в выполняемый код. Наконец, рассмотрим функцию «результат» и переменную, объявленную как Long. Тип данных Long допускает гораздо большие значения, чем Integer.

    Ниже показан код функции, преобразующей маленькие числа в слова.

    Создание пользовательской функции в Microsoft Excel Шаг 6
    Создание пользовательской функции в Microsoft Excel Шаг 6

    Шаг 6. Вернитесь в рабочую книгу и используйте функцию, написав символ «равно» (=), за которым следует имя функции в ячейке

    Напишите открывающие скобки («(») после имени функции, используя знак кома для разделения параметров и в конце закрывающими скобками («)»). В качестве примера:

    = NumberToLetter (A4)

    . Вы также можете использовать самодельные формулы, ища их в категориях. Определяемые пользователем внутри опции «Вставить формулу». Вы просто нажимаете кнопку Fx слева от строки формул. В функциях есть три типа форм параметров:

    1. Постоянное значение, которое вводится непосредственно в формулу ячейки. В этом случае текст (строку) необходимо заключить в кавычки.
    2. Ссылки на ячейки, например B6 или диапазон вроде A1: C3 (параметр должен иметь тип данных «Диапазон»)
    3. Другая функция, заключенная в вашу функцию (ваша функция также может быть заключена в другую функцию), например: = Factorial (MAX (D6: D8))

      Создание пользовательской функции в Microsoft Excel. Шаг 7
      Создание пользовательской функции в Microsoft Excel. Шаг 7

      Шаг 7. Убедитесь, что результаты верны

      Используйте его несколько раз, чтобы убедиться, что функция может правильно обрабатывать различные значения параметров:

      подсказки

      • При написании блоков кода в управляющих структурах, таких как If, For, Do и т. Д., Убедитесь, что вы сделали отступ (вставьте левую границу строки немного внутрь) блока кода, нажав несколько раз пробел или табуляцию. Это упростит понимание кода и упростит поиск ошибок. Кроме того, становится проще сделать увеличение функциональности.
      • Если вы не знаете, как писать код для функций, прочтите статью Как написать простой макрос в Microsoft Excel.
      • Иногда функциям не требуются все параметры для вычисления результата. В этом случае вы можете использовать ключевое слово Optional перед именем параметра в заголовке функции. Вы можете использовать функцию IsMissing (имя_параметра) в своем коде, чтобы определить, присвоено ли параметру значение или нет.
      • Используйте неиспользуемые имена в качестве функций в Excel, чтобы никакие функции не перезаписывались и не удалялись.
      • Excel имеет множество встроенных функций, и большинство вычислений можно выполнять с помощью этих встроенных функций по отдельности или все сразу. Обязательно ознакомьтесь со списком доступных функций, прежде чем приступить к написанию кода самостоятельно. Выполнение может быть выполнено быстрее, если вы используете встроенные функции.

      Предупреждение

      • В целях безопасности многие люди отключают макросы. Убедитесь, что вы уведомили получателей книги о том, что отправленная книга содержит макросы и что эти макросы не причинят вреда их компьютерам.
      • Функция, использованная в этой статье, не лучший способ решить связанную с этим проблему. Пример используется для объяснения использования структур управления языком.
      • VBA, как и другие языки, помимо Do, If и For, имеет несколько других структур управления. Обсуждаемая здесь структура описывает только то, что можно сделать в исходном коде функции. В Интернете есть множество руководств, которые могут помочь вам изучить VBA.

Рекомендуемые: