Функции в vba: Заявление функции (VBA) | Microsoft Learn

(l — k)
Next
toint = i
End Function

Как и процедура Sub, процедура Function является самостоятельной и может принимать параметры, выполнять ряд операторов и изменять значения своих параметров. В отличие от процедуры Sub, имя процедуры Function может возвращать значение в вызывающую процедуру. Существуют три различия между процедурами Sub и Function:

 Возвращаемое процедурой Function значение присваивается самому имени <имя процедуры> процедуры. Возвращаемое процедурой Function значение можно использовать в выражениях в программе.

 Как и переменные процедуры Function имеют тип, который определяет тип возвращаемого значения. (В отсутствие ключевого слова As в операторе определения процедуры ей назначается по умолчанию тип variant.)

 Вызов процедуры Function, или просто функции, в основном осуществляется заданием ее имени и параметров в правой части большого оператора или в составе выражения. 2)

End Function

В VBA процедура Function вызывается точно так же, как и любая встроенная функция:

strX = Hypotenuse(Width, Height)

Вызов процедур Function

Если функция не имеет аргументов, скобки после имени функции можно не ставить:

‘Все эти операторы вызывают не имеющую аргументов процедуру Function ToDec.


Debug.Print 10 * ToDec 
	X = ToDec
	If ToDec =10 Then Debug. Print "Out of Range" 
X = AnotherFunction(10 * ToDec)

Обычно вызов пользовательской функции (нестандартной функции, написанной программистом) аналогичен вызову встроенной (стандартной) функции VBA, например Abs.

Функцию можно вызывать так же, как и процедуру sub.

‘Следующие операторы вызывают одну и ту же функцию:

Call Year(Now)

Year Now

Значение функции при ее вызове подобным образом игнорируется.

Механизмы передачи параметров.

Обычно процедуре для выполнения требуются некоторые исходные данные. Эти данные могут передаваться процедуре при помощи параметров процедуры. При этом различают формальные параметры, то есть описанные в заголовке процедуры и используемые в ее теле, и фактические — те, что были указаны при ее вызове. Заметим, что имена формальных и фактических параметров не обязаны совпадать.

Типы данных параметров

По умолчанию параметры процедур имеют тип variant. Можно объявлять для параметров и другие типы данных. Заметим, что если типы фактически передаваемых в функцию значений отличаются от типа формальных параметров, то происходит неявное преобразование типов, Поэтому рекомендуется описывать в заголовке функции типы ее формальных параметров, а при вызове функции проверять соответствие типов фактических и формальных параметров.

Передача параметров по значению

При передаче параметра по значению (by value) процедуре передается копия переменной, выступающей в качестве параметра процедуры. Если процедура изменяет значение параметра, это затрагивает только копию переменной, а не саму переменную. Значение переменной- оригинала в вызывающей процедуру программе сохраняется прежним.

Для передачи параметров по значению используется ключевое слово ByVal,. например:


Sub PostAccounts(ByVal intAcctNum as Integer)
	<операторы тела процедуры> 
End Sub

Фактические параметры, заданные константами, всегда передаются по значению.

Передача параметров по ссылке

Передача процедуре параметров по ссылке (by reference) открывает ей доступ к области памяти, где хранится содержимое переменной. В результате процедура может изменять значение переменной, являющейся ее параметром. По умолчанию в VBA все параметры передаются по ссылке.

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

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


Private Sub Form_Load()
Dim intX As Integer
intX = 12 * 3
ВызываемаяПроцедура(intX)
End Sub
Sub ВызываемаяПроцедура (Bar As String)
MsgBox Bar   'Значение переменной Bar - строка "36"
End Sub
Необязательные параметры
С помощью ключевого слова Optional в списке параметров можно задавать необязательные параметры 
(optional arguments) процедуры. Если какой-то аргумент задан как необязательный, 
то и все последующие аргументы в списке аргументов должны быть необязательными и объявляются с ключевым словом optional. 
В этом коде все аргументы не являются обязательными:
Dim strИмя As String
Dim strАдрес As String
Sub Text(Optional x As String, Optional y As String)
MsgBox x
MsgBox y
End Sub
Private Sub Exec()
strИмя = "ВашеИмя"
strАдрес = 12345   ' Передаются два параметра. 
Call Text(strИмя, strАдрес)
End Sub
В этом коде некоторые аргументы обязательны:
Dim strИмя As String 
Dim varАдрес As Variant
Sub Text(x As String, Optional у As Variant)
MsgBox x
If Not IsMissing(y) Then
MsgBox y
End If 
End Sub
Private Sub Exec()
strИмя = "ВашеИмя"   ' Второй параметр не передается.
Call Text(strИмя) 
End Sub

Если необязательный параметр отсутствует, то он рассматривается как параметр с типом variant, имеющий значение Empty. В предыдущем при мере показано, как с помощью функции IsMissing проверять необязательные параметры.

Значения по умолчанию для необязательных параметров

В следующем примере процедура возвращает значение по умолчанию необязательного параметра, если при ее вызове он опущен:


Sub ListText (x As String, Optional у As Integer = 12345) 
MsgBox x
MsgBox y
End Sub
Private Sub Exec()
strName = "yourname"   ' Второй параметр не передается.  
Call Text (strName)   ' Добавляет "yourname" and "12345".
End Sub

Неизвестное число параметров

Обычно при вызове процедуры число ее параметров должно быть точно таким же, как и при ее объявлении. Ключевое слово РaramArray «разрешает» процедуре принимать произвольное число параметров. Приведем пример:


Dim x As Integer Dim у As Integer Dim intSum As Integer
Sub Sum(ParamArray intNums())
For Each x In intNums 
у = у + x
Next x
intSum = у 
End Sub
Private Sub Exec()
Sum 1, 3, 5, 7, 8
MsgBox intSum 
End Sub

Рекурсия. Под рекурсией понимают способность программы вызывать саму себя. Процедуры выделяют для хранения переменных ограниченный объем памяти в стеке. Стек — это рабочая область памяти, которая заполняется и освобождается динамически в соответствии с потребностями выполняемой программы. При каждом вызове процедурой самой себя выделяется дополнительный объем этой памяти. Процедура, вызывающая сама себя, называется рекурсивной. Рекурсивная процедура, которая бесконечно вызывает саму себя, приводит к ошибке. Например:


Function RunOut(Maximum)
	RunOut = RunOut(Maximum)
End Function

Эта ошибка менее очевидна, если две процедуры бесконечное число раз вызывают друг друга, или некоторое условие, ограничивающее рекурсию, никогда не выполняется. Рекурсия имеет свои области применения. Например, следующая процедура использует рекурсию для вычисления факториалов:


Function Factorial (N)
	If N <= 1 Then	' Достигнут конец рекурсивных вызовов.
Factorial = 1	' (N = 0) завершение вызовов.
	Else	' Повторный вызов функции, если N > 0.
	Factorial = Factorial(N - 1) * N
	End If
End Function

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

 устранения ненужных переменных;

 использования типов данных , отличных от Variant;

 переосмысления логики процедуры. Часто вместо рекурсии можно воспользоваться вложенными циклами.

Создание пользовательской функции на VBA в среде EXCEL. Любая процедура и функция, содержащиеся в общем модуле (но не в модуле формы и не в модуле класса), могут быть использована на рабочем листе Excel. Для выполнения процедур используется команда меню Сервис/Макрос/Макросы, а для вставки функций применяется команда меню Вставка/Функция или кнопка стандартной панели инструментов Вставка функции. При вставке функции запускается мастер функций, и если в проекте VBA имеется хотя бы одна функция, то в правом окне мастера функций появляется категория Определенные пользователем. При выборе этой категории в левом окне мастера функций отображается перечень функций проекта VBA. После выбора необходимой функции из списка, мастер функций предлагает ввести ее параметры, количество которых определено в ее заголовке. Если функция имеет необязательные параметры, или их число не определено, то мастер функций будет открывать окна для их ввода последовательно, по мере заполнения ранее открытых, как это происходит, например, при вставке функции рабочего листа СУММ. Значения параметров можно ввести с клавиатуры, либо можно ввести адрес ячейки, содержащей значение, либо можно указать ячейку с параметром, щелкнув по ней правой кнопкой мыши. Заметим, что ввод в качестве параметра диапазона ячеек допустим лишь в том случае, когда функция имеет неопределенное количество параметров, либо вводимый параметр представляет собой массив, либо он имеет объектовый тип данных Range.

В качестве примера перепишем в виде функции процедуру замены букв «А», «Б», «В» на цифры 1, 2, 3 соответственно (пример 6):


Function пример11(s As String)
Dim sn As String, t As String
Dim l As Integer, i As Integer
l = Len(s)
For i = 1 To l
t = Mid(s, i, 1)
Select Case t
Case "А": sn = sn + "1"
Case "Б": sn = sn + "2"
Case "В": sn = sn + "3"
Case Else: sn = sn + t
End Select
Next i
пример11 = sn
End Function

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

Функции VBA — voxt.ru

VBA-функции Excel

Мы видели, что мы можем использовать функции рабочего листа в VBA, то есть функции рабочего листа Excel в кодировании VBA с использованием метода application.worksheet, но как мы можем использовать функцию VBA в Excel, такие функции называются пользовательскими функциями, когда пользователь создает функцию в VBA, ее также можно использовать на листе Excel.

Хотя у нас есть много функций в Excel для управления данными, иногда нам нужно иметь некоторые настройки в инструментах, чтобы мы могли сэкономить наше время, поскольку мы повторяем некоторые задачи. У нас есть предопределенные функции в Excel, такие как SUM, СЧЁТЕСЛИСЧЁТЕСЛИФункция СЧЕТЕСЛИ в Excel подсчитывает количество ячеек в диапазоне на основе предварительно определенных критериев. Он используется для подсчета ячеек, содержащих даты, числа или текст. Например, СЧЁТЕСЛИ(A1:A10,»Козырь») подсчитает количество ячеек в диапазоне A1:A10, содержащих текст «Козырь».
читать далее, СУММЕСЛИСУММЕСЛИФункция СУММЕСЛИ Excel вычисляет сумму диапазона ячеек на основе заданных критериев. Критерии могут включать даты, числа и текст. Например, формула «=СУММЕСЛИ(B1:B5, «
читать далее ВПРВПРФункция Excel ВПР ищет определенное значение и возвращает соответствующее совпадение на основе уникального идентификатора. Уникальный идентификатор однозначно связан со всеми записями базы данных. Например, идентификатор сотрудника, номер списка учащихся, контактный номер клиента, адрес электронной почты продавца и т. д. являются уникальными идентификаторами.
читать далее, ПОКАЗАТЕЛЬ, ПОИСКПОЗ в excelПОИСКПОЗ В ExcelФункция ПОИСКПОЗ ищет определенное значение и возвращает его относительное положение в заданном диапазоне ячеек. Результатом является первая позиция, найденная для данного значения. Будучи поисковой и справочной функцией, она работает как для точного, так и для приблизительного совпадения. Например, если диапазон A11:A15 состоит из чисел 2, 9, 8, 14, 32, формула «ПОИСКПОЗ(8,A11:A15,0)» возвращает 3. Это связано с тем, что число 8 находится на третьем месте. должность.
читать далееи т. д., но мы ежедневно выполняем некоторые задачи, для которых отдельная команда или функция недоступна в Excel, тогда с помощью VBA мы можем создать пользовательскую функцию, которая называется «Определяемые пользователем функции» (UDFUDFПользовательская функция в VBA — это группа настраиваемых команд, созданных для выдачи определенного результата. Это гибкость, предоставляемая пользователю для разработки функций, аналогичных тем, которые уже предусмотрены в Excel.читать далее).

Вы можете использовать это изображение на своем веб-сайте, в шаблонах и т. д. Пожалуйста, предоставьте нам ссылку на авторствоКак предоставить атрибуцию?Ссылка на статью должна быть гиперссылкой
Например:
Источник: Функции VBA (wallstreetmojo. com)

Что делают функции VBA?

  • Они выполняют определенные расчеты; и
  • Вернуть значение

В VBA при определении функции мы используем следующий синтаксис для указания параметров и их типа данных.

Тип данных здесь — это тип данныхТип данных Вот тип данныхТип данных — это основной признак любой переменной. Он представляет, какой тип и диапазон значений мы можем хранить в переменной. Типы данных встроены в VBA, и пользователям или разработчикам необходимо знать, какое значение может храниться в каком типе данных.читать далее переменная останется. Он может содержать любое значение (любой тип данных или объект любого класса).

Мы можем связать объект с его свойством или методом, используя символ точки или точки (.).

Как создавать пользовательские функции с помощью VBA?

Вы можете скачать этот шаблон Excel функции VBA здесь — Шаблон Excel функции VBA

Пример

Предположим, у нас есть следующие данные из школы, где нам нужно найти общие оценки, набранные учащимся, результат и оценку.

Что касается суммирования оценок, выставленных отдельным учащимся по всем предметам, у нас есть встроенная функция, т. е. СУММ, но узнать оценку и результат по критериям, установленным школой, в Excel по умолчанию недоступно. .

Вот почему нам нужно создавать пользовательские функции.

Шаг 1: Найдите общее количество баллов

Сначала найдем общее количество баллов, используя Функция СУММ в ExcelФункция СУММ в ExcelФункция СУММ в Excel складывает числовые значения в диапазоне ячеек. Будучи отнесенной к категории функции «Математика и тригонометрия», она вводится путем ввода «= СУММ», за которым следуют значения для суммирования. Значения, предоставляемые функции, могут быть числами, ссылками на ячейки или диапазонами.читать далее.

Нажмите Enter, чтобы получить результат.

Перетащите формулу в остальные ячейки.

Теперь, чтобы узнать результат (пройдено, не пройдено или необходимо повторить), критерии, установленные школой, таковы.

  • Если учащийся набрал больше или равно 200 баллов из 500, и учащийся также не является неудовлетворительным ни по одному предмету (набрал более 32 баллов по каждому предмету), то учащийся считается зачисленным,
  • Если учащийся набрал больше или равно 200, но учащийся не прошел 1 или 2 предмета, то учащийся получил «Основное повторение» по этим предметам,
  • Если учащийся набрал менее 200 баллов или не прошел по 3 или более предметам, то учащийся считается неудовлетворительным.
Шаг 2: Создайте функцию ResultOfStudent

Чтобы создать функцию с именем «ResultOfStudent», нам нужно открыть «Редактор Visual Basic», используя любой из следующих методов:

  • С помощью Вкладка «Разработчик» Excel.Вкладка «Разработчик» Excel.Включение вкладки разработчика в Excel может помочь пользователю выполнять различные функции для VBA, макросов и надстроек, таких как импорт и экспорт XML, разработка форм и т. д. Эта вкладка по умолчанию отключена в Excel; таким образом, пользователю необходимо сначала включить его в меню параметров.читать далее

Если вкладка «Разработчик» недоступна в MS Excel, мы можем получить ее, выполнив следующие действия:

  • Щелкните правой кнопкой мыши в любом месте на ленте, затем выберите пункт Настроить лента в экселеЛента в ExcelЛенты в Excel 2016 предназначены для того, чтобы помочь вам легко найти команду, которую вы хотите использовать. Ленты организованы в логические группы, называемые вкладками, каждая из которых имеет собственный набор функций. читать далее‘.

Когда мы выбираем эту команду, «Параметры Экселя» открывается диалоговое окно.

  • Нам нужно поставить галочку на «Разработчик» чтобы получить вкладку.
  • С помощью сочетания клавиш, т.е. Альт + F11.
  • Когда мы открываем редактор VBAРедактор VBAРедактор Visual Basic для приложений — это интерфейс сценариев. Эти сценарии в первую очередь отвечают за создание и выполнение макросов в программном обеспечении Microsoft.читать далее, нам нужно вставить модуль, перейдя в меню «Вставка» и выбрав модуль.
  • Нам нужно вставить следующий код в модуль.
Function ResultOfStudents(Marks As Range) As String
Dim mycell As Range
Dim Total As Integer
Dim CountOfFailedSubject As Integer
For Each mycell In Marks
Total = Total + mycell.Value
If mycell.Value < 33 Then
CountOfFailedSubject = CountOfFailedSubject + 1
End If
Next mycell
If Total >= 200 And CountOfFailedSubject <= 2 And CountOfFailedSubject > 0 Then
ResultOfStudents = "Essential Repeat"
ElseIf Total >= 200 And CountOfFailedSubject = 0 Then
ResultOfStudents = "Passed"
Else
ResultOfStudents = "Failed"
End If
End Function

Приведенная выше функция возвращает результат для студента.

Нам нужно понять, как работает этот код.

Первое заявление, «Функция ResultOfStudents (помечает как диапазон) как строку», объявляет функцию с именем ‘РезультатСтудентов’ который примет диапазон в качестве входных данных для отметок и вернет результат в виде строки.

Dim mycell As Range
Dim Total As Integer
Dim CountOfFailedSubject As Integer

Эти три оператора объявляют переменные, т.е.

  • ‘моя ячейка’ как диапазон,
  • ‘Всего’ как целое число (для хранения общих оценок, набранных учащимся),
  • ‘Количество неудачных тем’ как целое число (для хранения количества предметов, по которым учащийся не прошел).
For Each mycell In Marks
Total = Total + mycell.Value
If mycell.Value < 33 Then
CountOfFailedSubject = CountOfFailedSubject + 1
End If
Next mycell

Этот код проверяет каждую ячейку в ‘Метки’ диапазон и добавляет значение каждой ячейки в ‘Всего’ переменной, а если значение ячейки меньше 33, то добавляет 1 к ‘Количество неудачных тем’ Переменная.

If Total >= 200 And CountOfFailedSubject <= 2 And CountOfFailedSubject > 0 Then
ResultOfStudents = "Essential Repeat"
ElseIf Total >= 200 And CountOfFailedSubject = 0 Then
ResultOfStudents = "Passed"
Else
ResultOfStudents = "Failed"
End If

Этот код проверяет значение Total и CountOfFailedSubject и передает Essential Report», «Passed» или «Failed» в соответствии с «ResultOfStudents».

Шаг 3: Примените функцию ResultOfStudents для получения результата

Функция ResultOfStudents принимает оценки, т.е. выборку из 5 оценок, набранных студентом.

Теперь выберите диапазон ячеек, т.е. В2: F2.

Перетащите формулу в остальные ячейки.

Шаг 4: Создайте функцию GradeForStudent для получения оценок

Теперь, чтобы узнать оценку ученика, мы создадим еще одну функцию с именем «Оценка для учащегося».

Код будет:

Function GradeForStudent(TotalMarks As Integer, Result As String) As String
If TotalMarks > 440 And TotalMarks <= 500 And ((Result = "Passed" Or Result = "Essential Repeat") 
Or Result = "Essential Repeat") Then GradeForStudent = "A"
ElseIf TotalMarks > 380 And TotalMarks <= 440 And (Result = "Passed" Or Result = "Essential Repeat") Then
GradeForStudent = "B"
ElseIf TotalMarks > 320 And TotalMarks <= 380 And (Result = "Passed" Or Result = "Essential Repeat") Then
GradeForStudent = "C"
ElseIf TotalMarks > 260 And TotalMarks <= 320 And (Result = "Passed" Or Result = "Essential Repeat") Then
GradeForStudent = "D"
ElseIf TotalMarks >= 200 And TotalMarks <= 260 And (Result = "Passed" Or Result = "Essential Repeat") Then
GradeForStudent = "E"
ElseIf TotalMarks < 200 Or Result = "Failed" Then
GradeForStudent = "F"
End If
End Function

Эта функция назначает ‘Оценка’ ученику на основании «Всего оценок» и ‘Результат.

Нам просто нужно написать формулу и открыть скобки в ячейке h3 и нажать Ctrl+Shift+А чтобы узнать о аргументах.

Функция GradeForStudent принимает в качестве аргумента итоговые оценки (сумму оценок) и результат учащегося для расчета оценки.

Теперь выберите соответствующие ячейки, т.е. Г2, Н2.

Теперь нам просто нужно нажать Ctrl+D после выбора ячеек, чтобы скопировать формулы.

Мы можем выделить значения менее 33 красным цветом фона, чтобы узнать предметы, по которым учащийся не прошел.

УЗНАТЬ БОЛЬШЕ >>


Post Views: 823

Похожие записи

Прокрутить вверх

Список функций VBA

Главная » Функции VBA

VBA предоставляет большое количество встроенных функций, которые можно использовать в вашем коде. Ниже перечислены наиболее популярные встроенные функции VBA. Выберите имя функции, чтобы перейти к полному описанию функции с примерами использования.

InputBox Отображает диалоговое окно, запрашивающее у пользователя ввод.
MsgBox Отображает модальное окно сообщения.
Формат Применяет формат к выражению и возвращает результат в виде строки.
InStr Возвращает позицию подстроки в строке.
InStrRev Возвращает позицию подстроки в строке при поиске справа налево.
Left Возвращает подстроку с начала предоставленной строки.
Лен Возвращает длину предоставленной строки.
LCase Преобразует предоставленную строку в текст нижнего регистра.
LTrim Удаляет начальные пробелы из предоставленной строки.
Mid Возвращает подстроку из середины предоставленной строки.
Заменить Заменяет подстроку в предоставленной текстовой строке.
Right Возвращает подстроку с конца предоставленной строки.
RTrim Удаляет конечные пробелы из предоставленной строки.
Пробел Создает строку, состоящую из указанного количества пробелов.
StrComp Сравнивает две строки и возвращает целое число, представляющее результат сравнения.
StrConv Преобразует строку в указанный формат.
Строка Создает строку, состоящую из нескольких повторяющихся символов.
StrReverse Переворачивает предоставленную строку.
Обрезка Удаляет начальные и конечные пробелы из предоставленной строки.
UCase Преобразует предоставленную строку в текст в верхнем регистре.
IsArray Проверяет, является ли предоставленная переменная массивом.
IsDate Проверяет, является ли предоставленное выражение датой.
Пусто Проверяет, является ли поставляемый вариант пустым.
IsError Проверяет, представляет ли указанное выражение ошибку.
IsMissing Проверяет, отсутствует ли необязательный аргумент процедуры.
IsNull Проверяет, является ли предоставленное выражение пустым.
IsNumeric Проверяет, является ли предоставленное выражение числовым.
IsObject Проверяет, представляет ли предоставленная переменная переменную объекта.
CVErr Создает тип данных Error для предоставленного кода ошибки.
Ошибка Возвращает сообщение об ошибке, соответствующее предоставленному коду ошибки.
Choose Выбирает значение из списка аргументов.
IIf Вычисляет выражение и возвращает одно из двух значений, в зависимости от того, является ли выражение истинным или ложным.
Switch Оценивает список логических выражений и возвращает значение, связанное с первым истинным выражением.
Asc Возвращает целое число, представляющее код предоставленного символа.
CBool ​​ Преобразует выражение в логический тип данных.
CByte Преобразует выражение в тип данных Byte.
CCur Преобразует выражение в тип данных Currency.
CDate Преобразует выражение в тип данных Date.
CDbl Преобразует выражение в тип данных Double.
CDec Преобразует выражение в тип данных Decimal.
Chr Возвращает символ, соответствующий предоставленному коду символа.
CInt Преобразует выражение в тип данных Integer.
CLng Преобразует выражение в тип данных Long.
CSng Преобразует выражение в тип данных Single.
CStr Преобразует выражение в тип данных String.
CVar Преобразует выражение в тип данных Variant.
FormatCurrency Применяет формат валюты к выражению и возвращает результат в виде строки.
FormatDateTime Применяет формат даты/времени к выражению и возвращает результат в виде строки.
FormatNumber Применяет числовой формат к выражению и возвращает результат в виде строки.
FormatPercent Применяет процентный формат к выражению и возвращает результат в виде строки.
Hex Преобразует числовое значение в шестнадцатеричное представление и возвращает результат в виде строки.
Октябрь Преобразует числовое значение в восьмеричное представление и возвращает результат в виде строки.
Str Преобразует числовое значение в строку.
Val Преобразует строку в числовое значение.
Дата Возвращает текущую дату.
DateAdd Добавляет временной интервал к дате и/или времени.
ДатаРазница Возвращает количество интервалов между двумя датами и/или временем.
DatePart Возвращает часть (день, месяц, год и т. д.) предоставленной даты/времени.
DateSerial Возвращает Date из предоставленного номера года, месяца и дня.
DateValue Возвращает дату из строкового представления даты/времени.
День Возвращает номер дня (от 1 до 31) предоставленной даты.
Час Возвращает часовую составляющую предоставленного времени.
Минуты Возвращает компонент минут предоставленного времени.
Месяц Возвращает номер месяца (от 1 до 12) указанной даты.
MonthName Возвращает название месяца для предоставленного номера месяца (от 1 до 12).
Сейчас Возвращает текущую дату и время.
Секунда Возвращает вторую часть предоставленного времени.
Время Возвращает текущее время.
Таймер Возвращает количество секунд, прошедших с полуночи.
TimeSerial Возвращает время из предоставленных часов, минут и секунд.
TimeValue Возвращает время из строкового представления даты/времени.
День недели Возвращает целое число (от 1 до 7), представляющее день недели указанной даты.
WeekdayName Возвращает название дня недели для заданного целого числа (от 1 до 7).
Год Возвращает год указанной даты.
Abs Возвращает абсолютное значение числа.
Atn Вычисляет арктангенс заданного числа.
Cos Вычисляет косинус заданного угла.
Exp Вычисляет значение e x для предоставленного значения x.
Fix Усекает число до целого числа (округляя отрицательные числа до нуля).
Int Возвращает целую часть числа (округление отрицательных чисел от нуля).
Log Вычисляет натуральный логарифм введенного числа.
Rnd Генерирует случайное число от 0 до 1.
Round Округляет число до заданного количества десятичных разрядов.
Sgn Возвращает целое число, представляющее арифметический знак числа.
Sin Вычисляет синус заданного угла.
Tan Вычисляет тангенс заданного угла.
кв. Возвращает квадратный корень числа.
DDB Рассчитывает амортизацию актива за указанный период с использованием метода двойного уменьшаемого остатка.
FV Расчет будущей стоимости кредита или инвестиции.
IPmt Рассчитывает процентную часть платежа за определенный период по кредиту или инвестиции.
IRR Рассчитывает внутреннюю норму доходности для серии периодических денежных потоков.
MIRR Рассчитывает модифицированную внутреннюю норму доходности для серии периодических денежных потоков.
NPer Рассчитывает количество периодов для кредита или инвестиции.
NPV Вычисляет чистую текущую стоимость инвестиций.
Pmt Расчет постоянных периодических платежей по кредиту или инвестиции.
PPmt Расчет основной части платежа за определенный период по кредиту или инвестиции.
PV Вычисляет приведенную стоимость кредита или инвестиции.
Ставка Рассчитывает процентную ставку за период для кредита или инвестиции.
SLN Рассчитывает прямолинейную амортизацию актива за один период.
SYD Вычисляет амортизацию по сумме лет за указанный период срока службы актива.
Массив Создает массив, содержащий предоставленный набор значений.
Фильтр Возвращает подмножество предоставленного массива строк на основе предоставленных критериев.
Соединение Объединяет несколько подстрок в одну строку.
LBound Возвращает нижний индекс для измерения массива.
Разделить Разбивает текстовую строку на несколько подстрок.
UBound Возвращает самый высокий индекс для измерения массива.
CurDir Возвращает текущий путь в виде строки.
Dir Возвращает имя первого файла или каталога, которое соответствует указанному шаблону и атрибутам.
FileAttr Возвращает режим файла, открытого с помощью оператора Open.
FileDateTime Возвращает дату и время последнего изменения предоставленного файла, каталога или папки.
FileLen Возвращает длину предоставленного файла, каталога или папки.
GetAttr Возвращает целое число, представляющее атрибуты предоставленного файла, каталога или папки.
Vlookup в VBA Использовать функцию Vlookup электронной таблицы Excel из VBA

Вернуться к ExcelFunctions. net Домашняя страница

Функция VBA в Excel | Как использовать функцию VBA в Excel с примерами?

Функция VBA в Excel   (Содержание)

  • Функция VBA в Excel
  • Как использовать функцию VBA в Excel?
  • Примеры функций VBA в Excel

У нас также есть функции в VBA, которые полностью встроены в него. Почти все функции Excel можно использовать и в VBA с почти таким же синтаксисом. И если есть какие-либо изменения в синтаксисе, мы сможем увидеть это также, когда мы собираемся использовать функцию VBA. Чтобы объявить функцию в VBA, сначала откройте процедуру Private-End и выберите тип данных в соответствии с функциональной необходимостью.

Visual Basic

VBA означает Visual Basic для приложения. VBA обычно представляет собой язык программирования Excel, который встроен в отдельное приложение Microsoft, например Excel или Access, где мы можем автоматизировать несколько задач, которые также называются «МАКРО» в Excel. Приложение Visual Basic поставляется с несколькими командными кнопками и другими функциями, которые облегчают пользователю автоматизацию.

Пользовательская функция VBA (UDF)

Функция, определяемая пользователем, — это просто функция, в которой мы можем создать себя в VBA для целей автоматизации.

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

Как использовать функцию VBA в Excel?

В Excel мы можем найти функцию VBA на вкладке «РАЗРАБОТЧИК». По умолчанию в Excel нет этого меню. Поэтому, чтобы отобразить его, нам нужно добавить это меню «РАЗРАБОТЧИК» вручную, выполнив следующие шаги.

  • Перейти в меню Файл . Нажмите на меню Option , которое выделено желтым цветом.
  • После того, как мы нажмем на эту опцию, мы получим диалоговое окно ниже, как показано ниже.
  • Выберите опцию Настроить ленту , и мы получим диалоговое окно ниже, как показано ниже
  • В опции настройки ленты мы можем увидеть добавление или удаление ленты вручную. Здесь мы видим, что в «Правой части» ленты настройки « DEVELOPER «Вкладка не отмечена. Отметьте эту вкладку «РАЗРАБОТЧИК» и нажмите OK
  • После того, как вы отметите вкладку « РАЗРАБОТЧИК », она будет добавлена ​​в меню Excel, которое отображается следующим образом

Теперь мы видим, что добавлена ​​вкладка « Разработчик » с такими функциями, как VISUAL BASIC, MACROS и т. д.

Добавление VBA в Excel выполнив следующие шаги.

  • Открыть книгу Excel. Используйте сочетание клавиш ALT + F11, чтобы открыть редактор Visual Basic, который также называется VBE в Excel, как показано на снимке экрана ниже
  • .

  • Щелкните правой кнопкой мыши имя вашей книги на панели « Project VBAProject » (в верхнем левом углу окна редактора) и выберите Insert -> Module из контекстного меню, как показано ниже
  • Теперь мы видим, что новый модуль был добавлен как МОДУЛЬ 1 на левой стороне панели.
  • В правой части мы можем использовать функцию UDF с помощью VBA.

Функция Visual Basic

В Visual Basic мы будем использовать различные функции. Функция — это не что иное, как набор визуальных основных операторов, заключенных в начальную и конечную функции. Эта функция обычно выполняет задачу, а затем возвращает элементы управления вызывающему коду. Если он возвращает элемент управления, он также возвращает значение для определенного кода.

Функция VBA

Visual Basic содержит большое количество встроенных функций, таких как функция сообщения, функция строки и текста, информационная функция, функция преобразования, дата и время, математические и триггерные функции, финансовая функция

Мы см. наиболее часто используемую функцию VBA, которая указана ниже.

  • Поле ввода — Отображает диалоговое окно ввода
  • Msg Box- Отображает окно сообщения, т.е. окно предупреждающего сообщения
  • Формат- Применяет формат для конкретной строки.
  • Len- Возвращает длину строки
  • Заменить — Заменит определенную строку другой строкой.
  • Is Array- Проверяет, является ли предоставленное значение массивом.
  • Is Date- Который проверит, является ли предоставленное выражение форматом даты.
  • Is Empty — Проверяет, является ли конкретный вариант пустым или нет
  • Is Null — Проверяет, является ли предоставленное значение null или нет
  • Дата – Возвращает текущую дату.
  • Месяц – Возвращает номер месяца.
  • Сейчас – Возвращает текущую дату и время.
  • Год – Возвращает текущий год.

Примеры функции VBA в Excel

Функция VBA очень проста в использовании. Давайте теперь посмотрим, как использовать функцию VBA в Excel с помощью нескольких примеров.

Вы можете скачать этот шаблон функции VBA Excel здесь — Шаблон функции VBA Excel

Пример № 1

Сложение двух чисел

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

  • Открыть книгу Excel. Используйте сочетание клавиш ALT+F11 , чтобы открыть редактор VBE. Получаем VBE editor следующим образом
  • Перейти к Вставить меню и выбрать модуль

Как только мы нажмем на модуль, новый модуль будет добавлен на лист, где мы напишем код функции VBA в правой части страницы «Общие».

Теперь, чтобы получить результат сложения двух чисел, мы должны использовать следующую кодировку:

Функция addtwo(arg1, arg2)
addtwo = arg1 + arg2 мы назвали функцию как «addtwo» и кодировка будет отображаться как:

Теперь на листе Excel мы можем использовать функцию « addtwo », чтобы добавить новый номер как:

Результат:

2

Пример #2

Функция даты

В VBA функция даты — это встроенная функция DATE(), которая возвращает дату и время. Теперь мы будем использовать функцию даты, чтобы получить дату на конкретном листе. В VBA мы можем использовать UDF для получения результата.

Вставьте новый модуль, как мы обсуждали выше в примере 1.

Как только мы нажмем на модуль, новый модуль будет добавлен на рабочий лист, а в правой части страницы «Общие» мы напишем код функции VBA. .

Sub todayDate()
Range("A1"). Value = Date
End Sub

Здесь в приведенном выше коде мы назвали функцию как «todayDate» , и код будет отображаться как:

Нажмите RUN или Нажмите F5 , чтобы выполнить код

Эта кодировка вернет только текущую дату в указанном имени ячейки A1 , и после выполнения результат будет показан как:

Пример №3

Окно сообщений VBA

Visual Basic обычно имеет функцию двух окон сообщений

  1. Метод Msg Box.
  2. Функция ящика сообщений.

Метод MsgBox

Метод MSGBOX — это один из языков VBA, в котором он отображает окно msgbox для заданной строки, обычно имеет кнопку ok, чтобы пользователь мог увидеть MSGBOX и продолжить выполнение указанной задачи.

Функция MsgBox

Функция MSGBOX, которая обычно возвращает значение, эта функция MSGBOX будет иметь тип вопроса, такой как «Да» или «Нет» или «Прервать» или «Продолжить».

Мы увидим оба окна MSG с приведенными ниже примерами следующим образом.

Метод ящика сообщений Пример:

Вставьте новый модуль, как мы обсуждали выше в примере 1.

Как только мы нажмем на модуль, на листе будет добавлен новый модуль, а в правой части страницы «Общие» мы напишем функцию VBA. кодирование.

Sub Firstmsg()
MsgBox "Hello"
End Sub

На приведенном ниже снимке экрана мы написали код для отображения MSG BOX как Hello .

Нажмите кнопку RUN или Нажмите F5 для выполнения кода.

Мы получим следующий вывод.

Мы видим сообщение HELLO , которое приходит из окна MSG.

Пример функции Msg Box:

В этом примере мы увидим, как использовать функцию MSG BOX с помощью vbYesNoCancel

Вставить новый модуль, как мы обсуждали выше в примере 1. новый модуль будет добавлен на лист и в правую часть страницы «Общие», где мы напишем код функции VBA.

Sub Firstmsg()
MsgBox "Добро пожаловать, пользователь или гость?", vbYesNoCancel, "Войти?"
End Sub

На приведенном ниже снимке экрана мы написали код для отображения окна MSG BOX. Здесь, в функции MSG BOX, мы указали ДА или НЕТ, чтобы проверить, является ли конечный пользователь пользователем или гостем.

Нажмите кнопку RUN или Нажмите F5 для выполнения кода

После выполнения мы получим следующий MSGBOX

Что нужно помнить о функции VBA

  • В VBA есть много встроенных функций, которые можно использовать в процессе автоматизации.
  • При применении нескольких функций MACROS убедитесь, что мы назначили конкретную клавишу для ее запуска.
  • Назовите каждый модуль в VBA, чтобы избежать путаницы в кодировании.

Рекомендуемые статьи

Это руководство по функциям Excel VBA.