Выделение части строки
Задачу выделения части строки в VBA решают три функции: Left, Right и Mid. Функция Left Формат функции: Left(String, Length) String – любое допустимое строковое выражение; Length – любое численное значение. Функция возвращает копию String, начиная с первого символа и включая количество символов, заданных с помощью Length. Если Length является числом, большим, чем фактическая длина String, то возвращается всё строковое выражение String. Функция Right Формат функции: Right(String, Length) String – любое допустимое строковое выражение; Length – любое численное значение.
Функция возвращает копию String, начиная с последнего символа и включая справа налево количество символов, заданных с помощью Length. Если Length является числом, большим, чем фактическая длина String, то возвращается все строковое выражение String. Функция Right всегда копирует символы от конца строки к ее началу. Функция Mid Формат функции: Mid(String, Start, [, Length]) String – любое допустимое строковое выражение; Length, Star t – любые численные значения.
Функция Mid возвращает копию String, начиная с положения символа в String, задаваемого с помощью аргумента Start . Необязательный аргумент Length определяет количество копируемых в Mid символов из String. Если Start содержит большее число, чем фактическая длина String, то возвращается пустая строка. Пример Sub Встр_функции_7() Dim R1 As String, R2 As String, _
R4 = "Ваша оценка Отлично" R1 = Left(R4, 4) R2 = Mid(R4, 6, 6) R3 = Right(R4, 7) MsgBox "R4=" & R4 & Chr(13) & _ "R1=" & R1 & Chr(13) & _ "R2=" & R2 & Chr(13) & _ "R3=" & R3 End Sub
Форматирование значений данных Форматирование значений данных можно выполнить при помощи функции Format, которая идентична функции Format в Excel и использует те же символы-заполнители форматирования данных. Формат функции: Format(Expression [, Format[, Firstdayofweek [, Firstweekofyear]]]) Expression - любое допустимое выражение (обязательный аргумент). Format - допустимое выражение именованного или определенного пользователем формата. Firstdayofweek - константа, которая определяет первый день недели. Firstweekofyear - константа, которая определяет первую неделю года. Чтобы использовать функцию Format, надо либо задать предопределенный формат, либо создать образ определенного формата, используя символы-заполнители. В качестве символов-заполнителей используются символы 0, #, $, m, d, q и другие, используемые в Excel.
Пример Sub Встр_функции_8() Dim Дата As Date Дата = Date MsgBox Format(Дата, "Long Date") & vbCr _ & Format(Дата, "Medium Date") & vbCr _ & Format(Дата, "Short Date") & vbCr _ & Format(Дата, "dd mmmm yy") & vbCr _ & Format(Дата, "dd mm yy") & vbCr _ & Format(Дата, "dd mm yyyy") End Sub Функции, определённые пользователем Функция, определённая пользователем, называемая также процедурой-функцией, – это особый вид процедуры VBA, возвращающей результат. Пользовательские процедуры-функции, как и встроенные функции VBA, могут иметь необязательные и именованные аргументы. Для записи функции-процедуры нельзя использовать макрорекордер, хотя можно редактировать записанный рекордером макрос и превращать его в функцию-процедуру. Основное различие между процедурой-функцией и другими процедурами, помимо того, что функции возвращают значение, а процедуры - нет, состоит в том, что в функции-процедуре используются ключевые слова Function и End Function. Формат процедуры-функции: Function Name([Arglist]) [As Type] VBA Statements [Name = expression] End Function Function – ключевое слово, объявляющее начало функции. Name – имя функции. Имена функций следуют тем же правилам, что и имена других идентификаторов VBA. Arglist – список аргументов данной функции, необязательный элемент. Type – любой тип возвращаемого значения функции. Если тип не определен, результат, который возвращает функция-процедура, имеет тип Variant. Name = expression – присваивание функции, которое указывает VBA, какое значение должна возвращать функция, необязательный элемент. Тем не менее, всегда следует включать оператор присваивания в функции-процедуры. End Function – ключевые слова, заканчивающие функцию. Даже если функция не имеет аргументов (например, Now, Date) в объявлении функции необходимо использовать круглые скобки. Обычно функция предназначается для выполнения вычисления и для возвращения результата. При объявлении функции-процедуры указывается имя каждого аргумента, передаваемого функции. Имена аргументов в списке отделяются друг от друга запятой и должны следовать правилам, применяемым к любому идентификатору VBA. Пример функции Ниже приведён пример, в котором используется функция, вычисляющая сумму комиссионных. Суть задачи состоит в следующем. В таблице, приведённой ниже, требуется подсчитать суммы комиссионных и оплаты. Суммы комиссионных подсчитываются в процедуре-функции Cells(i, 3) = Комиссионные(Cells(i, 2)), параметром которой является сумма продаж, находящаяся в ячейке Excel Оплата равна сумме продажи и комиссионных: Cells(i, 4) = Cells(i, 2) + Cells(i, 3)
Sub Расчёт_Комиссионных() Sheets("Лист1").Select Dim i As Integer i = 3 While Cells(i, 1) <> "" Cells(i, 3) = Комиссионные(Cells(i, 2)) Cells(i, 4) = Cells(i, 2) + Cells(i, 3) i = i + 1 Wend End Sub Function Комиссионные(Продажи As Double) As Double Dim РасчётКом As Double, Надбавка As Double РасчётКом = Продажи * 0.05 If Продажи > 5000 Then Надбавка = 0.01 * (Продажи - 5000) РасчётКом = РасчётКом + Надбавка End If If Продажи > 10000 Then Надбавка = 0.02 * (Продажи - 10000) РасчётКом = РасчётКом + Надбавка End If If Продажи > 15000 Then Надбавка = 0.03 * (Продажи - 15000) РасчётКом = РасчётКом + Надбавка End If Комиссионные = РасчётКом End Function Подсчёт оплаты выполняется при помощи инструкции Cells(i, 4) = Cells(i, 2) + Cells(i, 3) в процедуре Расчёт_Комиссионных. Ниже приведена таблица с результатом решения задачи. VBA передает все аргументы в функцию-процедуру как типы Variant. Можно объявлять определенные типы данных для каждого аргумента в списке аргументов. Определение типов аргументов для функции-процедуры помогает пользователю при вызове функции вводить аргументы правильного типа в правильном порядке.
Популярное: Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (385)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |