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

Автор: Alice Brown
Дата создания: 4 Май 2021
Дата обновления: 15 Май 2024
Anonim
Создание пользовательских функций в Excel, часть 1
Видео: Создание пользовательских функций в Excel, часть 1

Содержание

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

Шаги

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

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

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

  4. Создайте «заголовок» или «прототип» вашей функции. У вас должна быть следующая структура: публичная функция TheNameOfYourFunction (param1 As type1, param2 As type2) As returnType Параметров может быть сколько угодно, и их тип может быть любым из основных типов данных или типов объектов Excel, таких как Range. Вы можете думать о параметрах как о «операндах», с которыми будет действовать ваша функция. Например, когда вы говорите SIN (45) для вычисления синуса 45 градусов, 45 будет принято в качестве параметра. Затем код вашей функции будет использовать это значение для выполнения некоторых вычислений и представления результата.
  5. Добавьте код функции, убедившись: 1) использовать значения, указанные в параметрах; 2) присвоить результат имени функции; и 3) закройте функцию с помощью «end function». Изучение программирования на VBA или любом другом языке может занять некоторое время и потребовать подробного руководства. Однако функции часто имеют небольшие блоки кода и используют мало языковых ресурсов. Наиболее полезными элементами языка VBA являются:
    1. Блок Если, что позволяет запускать часть кода только при выполнении условия. Например:


      Открытая функция CourseResult (сетка как целое число) как строка
      Если оценка> = 5 Тогда
      CourseResult = "Утверждено"
      Еще
      CourseResult = "Отклонено"
      Конец, если
      Конечная функция

      Обратите внимание на элементы в блоке кода Если: IF условие THEN код ELSE код END IF. Ключевое слово Еще вместе со второй частью кода являются необязательными.
    2. Блок Из, который выполняет фрагмент кода Пока (пока) или До того как (пока) не будет выполнено условие. Например:

      Открытая функция IsPrime (значение как целое число) как логическое
      Dim i как целое число
      я = 2
      IsPrime = True
      Из
      Если value / i = Int (value / i) Тогда
      IsPrime = False
      Конец, если
      я = я + 1
      Цикл, пока я <значение и IsPrime = True
      Конечная функция

      Снова посмотрите на элементы: Код DO LOOP WHILE / UNTIL условие. Также обратите внимание на вторую строку, где «объявлена» переменная. Вы можете добавлять переменные в свой код, чтобы использовать их позже. Переменные действуют как временные значения в коде. Наконец, посмотрите на объявление функции как BOOLEAN, который является типом данных, который допускает только значения TRUE и FALSE. Этот метод определения того, является ли число простым, не идеален, но я предпочитаю оставить его как есть, чтобы код было легче читать.
    3. Блок За, который выполняет часть кода указанное количество раз. Например:

      Факториал публичной функции (значение как целое число) до тех пор, пока
      Тусклый результат Как долго
      Dim i как целое число
      Если значение = 0 Тогда
      результат = 1
      ElseIf value = 1 Тогда
      результат = 1
      Еще
      результат = 1
      Для i = 1 По значению
      результат = результат * я
      Следующий
      Конец, если
      Факториал = результат
      Конечная функция

      Посмотрите еще раз на элементы:FOR переменная = нижний предел TO верхний предел кода NEXT. Также обратите внимание на элемент ElseIf добавлено в заявлении Если, что позволяет добавлять дополнительные параметры для кода, который будет выполняться. Наконец, посмотрите на объявление функции и переменную "результат" как Длинный. Тип данных Длинный допускает гораздо более высокие значения, чем 'Integer'.

      Ниже приведен код функции, преобразующей числа в слова.
  6. Вернитесь к своей книге и используйте функцию, начав содержимое ячейки с равный за которым следует название вашей роли. Добавьте открывающую скобку к имени функции, параметры разделите запятая и последняя закрывающая скобка. Например:= NumberToLetters (A4) Вы также можете использовать определенную пользователем формулу, выполнив поиск в категории Определяемые пользователем в мастере ввода формулы. Просто нажмите кнопку Fx расположен слева от строки формул. Параметры могут быть трех типов:
    1. Постоянные значения вводятся непосредственно в формулу ячейки. В этом случае строки должны быть заключены в кавычки.
    2. Ссылки на ячейки вроде B6 или интервалы вроде A1: C3 (параметр должен иметь тип Перемена"")
    3. Другие функции, расположенные внутри вашей функции (ваша функция также может быть сгруппирована внутри других функций). То есть: = Факториал (МАКС (D6: D8))
  7. Проверьте, в порядке ли результат после использования функции несколько раз убедитесь, что она правильно обрабатывает различные значения параметров:

подсказки

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

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

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

Дайвинг - это типичное упражнение для бодибилдинга, в котором человек должен удерживать вес тела с помощью трицепсов, дельтовидных мышц, грудных мышц и ромбовидных мышц. Есть несколько разных видов: м...

Разогрейте бигуди. Перед нанесением на волосы важно, чтобы они были при идеальной температуре, поэтому следуйте инструкциям производителя. Если в наборе есть переменная температура, немного поэксперим...

Наша рекомендация