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

Съдържание:

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

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

Видео: Как да създадете потребителски функции в Microsoft Excel
Видео: 10 Bedroom Redo Ideas 2024, Декември
Anonim

Въпреки че Excel вече има стотици вградени функции като SUM, VLOOKUP, LEFT и т.н., наличните вградени функции обикновено не са достатъчни за извършване на доста сложни задачи. Не се притеснявайте, защото трябва само да създадете необходимите функции сами.

Стъпка

Създайте потребителска функция в 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 (ако), който ви позволява да изпълните част от кода само ако условието е изпълнено. Като пример:
  2. Резултат от курса на публична функция (като цяло число) As String

    Ако стойност> = 5 Тогава

    Резултати от курса = "Приети"

    Иначе

    Резултати от курса = "Отхвърлен"

    Край Ако

    Крайна функция

    Забележете елементите в кодовия блок If:

    IF условие THEN код ELSE код END IF

  3. . Можете да пропуснете ключовата дума Else заедно с втората част на кода, тъй като тя не е задължителна.
  4. Блокът Do (do), който изпълнява част от кода До или До, когато или докато условието е изпълнено. Като пример:
  5. Публична функция BilPrima (стойност As Integer) Като Boolean

    Dim i As Integer

    i = 2

    BilPrima = Вярно

    Направете

    Ако стойност / i = Int (стойност / i) Тогава

    BilPrima = False

    Край Ако

    i = i + 1

    Цикъл Докато i <стойност And NumberPrima = Истина

    Крайна функция

    Погледнете отново елементите:

    DO код LOOP ДОКАТО/ДО УСЛОВИЕ

  6. . Обърнете внимание и на втория ред, който "декларира" променливата. Можете да добавите променливи към кода си за по -късна употреба. Променливите действат като временни стойности в кода. И накрая, помислете за декларацията на функцията като BOOLEAN, което е тип данни, който позволява само TRUE или FALSE стойности. Този метод за определяне на прости числа далеч не е оптимален, но кодът е написан по такъв начин, че е лесен за четене.
  7. За блок (to), който изпълнява определено количество код. Като пример:
  8. Фактор на публичната функция (стойност като цяло число) толкова дълго

    Затъмняване на резултатите толкова дълго

    Dim i As Integer

    Ако стойност = 0 Тогава

    резултат = 1

    ElseIf value = 1 Тогава

    резултат = 1

    Иначе

    резултат = 1

    За i = 1 Към стойността

    резултат = резултат * i

    Следващия

    Край Ако

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

    Крайна функция

    Погледнете отново елементите:

    ЗА променлива = долна граница КЪМ горна граница на код NEXT

    . Обърнете внимание и на допълнителния елемент ElseIf в израза If, който ви позволява да добавяте още опции към кода, който се изпълнява. И накрая, помислете за функцията „резултат“и променливата, декларирани като Long. Типът Long данни позволява много по -големи стойности от Integer.

    По -долу е показан кодът за функция, която преобразува малки числа в думи.

    Създайте потребителска функция в Microsoft Excel Стъпка 6
    Създайте потребителска функция в Microsoft Excel Стъпка 6

    Стъпка 6. Върнете се в работната книга и използвайте функцията, като напишете символа „равно“(=), последвано от името на функцията в клетката

    Напишете началните скоби („(“) след името на функцията, като използвате знака кома за разделяне на параметрите и завършване със затварящи скоби (“)”). Като пример:

    = NumberToLetter (A4)

    . Можете също да използвате домашно приготвени формули, като ги търсите в категории Дефиниран от потребителя вътре в опцията Вмъкване на формула. Просто натискате бутона Fx вляво от лентата с формули. Има три типа формуляри на параметри във функциите:

    1. Постоянна стойност, която се въвежда директно във формулата на клетката. В този случай текстът (низът) трябва да бъде цитиран.
    2. Препратки към клетки, например В6 или диапазон като A1: C3 (параметърът трябва да е тип данни „Обхват“)
    3. Друга функция, която е затворена във вашата функция (вашата функция може да бъде затворена и в друга функция), например: = Факторна (MAX (D6: D8))

      Създайте потребителска функция в Microsoft Excel Стъпка 7
      Създайте потребителска функция в Microsoft Excel Стъпка 7

      Стъпка 7. Уверете се, че резултатите са правилни

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

      Съвети

      • Когато пишете кодови блокове в контролни структури като If, For, Do и т.н., уверете се, че сте отстъпили (вмъкнете леко лявата граница на реда вътре) в кодовия блок, като натиснете интервала няколко пъти или табулатор. Това ще направи кода по -лесен за разбиране и грешките ще бъдат много по -лесни за намиране. Освен това увеличаването на функционалността става по -лесно.
      • Ако не знаете как да пишете код за функции, прочетете статията Как да напишете прост макрос в Microsoft Excel.
      • Понякога функциите не се нуждаят от всички параметри за изчисляване на резултата. В този случай можете да използвате ключовата дума Optional преди името на параметъра в заглавката на функцията. Можете да използвате функцията IsMissing (име на параметър) във вашия код, за да определите дали на параметър е присвоена стойност или не.
      • Използвайте неизползвани имена като функции в Excel, така че никоя функция да не бъде презаписана и изтрита.
      • Excel има много вградени функции и повечето изчисления могат да се извършват с помощта на тези вградени функции, поотделно или всички наведнъж. Уверете се, че сте разгледали списъка с наличните функции, преди да започнете да кодирате сами. Изпълнението може да стане по-бързо, ако използвате вградени функции.

      Внимание

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

Препоръчано: