Строковые функции (Visual Basic). Vba описание mid
Обработка строк - VBA
Строка — это последовательность символов. Строковые величины могут быть переменными или константами. Символы, заключенные в кавычки, являются строками.
В VBA существует несколько функций для обработки строк. Mid(вырезка), Len (длина), InStr(поиск), Left (вырезка слева), Right (вырезка справа), Trim (убирает пробелы слева и справа), StrComp (сравнение строк) и др.
Приведем пример обработки строк.
Задача: В строке подсчитать количество цифр.
Решение:
Sub пример_str_4() Dim Mystring, char Dim i, n Mystring = InputBox("Введите строку") n = 0 For i = 1 To Len(Mystring) char = Mid(Mystring, i, 1) If char >= "0" And char <= "9" Then n = n + 1 Next i MsgBox n End SubФункция Mid
Общий вид функции Mid:
Mid(Строка, Начальная_позиция[, Длина])Функция Mid возвращает вырезку из строки Строка, начиная со позиции Начальная_позиция, длиною Длина.
Пример:
Sub пример_mid() Dim MyString, Word1, Word2, Word3 MyString = "Демо функции Mid" Word1 = Mid(MyString, 1, 4) ' результат "Демо" MsgBox Word1 Word2 = Mid(MyString, 14, 3) ' результат "Mid" MsgBox Word2 Word3 = Mid(MyString, 6) ' результат "функции Mid" MsgBox Word3 End Sub
Функция Len
Общий вид функции Len:
Len (Строка)Функция Len возвращает длину строки Строка.
Пример:
Sub пример_len() Dim MyString Dim Длина MyString = "Демо функции Len" Длина = Len(MyString) MsgBox Длина End SubФункция InStr
Общий вид функции InStr:
InStr([нач_позиция, ]Строка1, Строка2[, Опция_1_или_0])Функция InStr номер первого вхождения в строке Строка1 строки Строка2, начиная с позиции Нач_позиция.
Пример:
Sub пример_instr() Dim Mystring Mystring = "Где Вася" номер = InStr(Mystring, "Вася") ' результат 5 MsgBox номер End Subitteach.ru
Оператор Mid (Visual Basic) | Microsoft Docs
- 07/20/2015
- Время чтения: 2 мин
- Соавторы
В этой статье
Заменяет указанное число символов в String переменной с символами из другой строки.Replaces a specified number of characters in a String variable with characters from another string.
СинтаксисSyntax
Mid( _ ByRef Target As String, _ ByVal Start As Integer, _ Optional ByVal Length As Integer _ ) = StringExpressionЧастиParts
TargetОбязательно.Required. Имя String переменная, подлежащая изменению.Name of the String variable to modify.
StartОбязательно.Required. Integer выражение.Integer expression. Позиция знака в Target которой начинается замена текста.Character position in Target where the replacement of text begins. Start использует однобазовый индекс.Start uses a one-based index.
LengthНеобязательный.Optional. Integer выражение.Integer expression. Число символов для замены.Number of characters to replace. Если не указано, все String используется.If omitted, all of String is used.
StringExpressionОбязательно.Required. String выражение, которое заменяет часть Target.String expression that replaces part of Target.
ИсключенияExceptions
ArgumentException | Start < = 0 или Length < 0.Start <= 0 or Length < 0. |
ПримечанияRemarks
Число заменяемых знаков всегда будет меньше или равно числу символов в Target.The number of characters replaced is always less than or equal to the number of characters in Target.
Visual Basic имеет Mid функции и Mid инструкции.Visual Basic has a Mid function and a Mid statement. Эти элементы, которые работают на указанное число знаков в строке, но Mid функция возвращает символов при Mid инструкция заменяет символы.These elements both operate on a specified number of characters in a string, but the Mid function returns the characters while the Mid statement replaces the characters. Дополнительные сведения см. в разделе Mid.For more information, see Mid.
Примечание
MidB Инструкция из более ранних версиях Visual Basic заменяет подстроки в байтах, а не символы.The MidB statement of earlier versions of Visual Basic replaces a substring in bytes, rather than characters. Он используется главным образом для преобразования строк в приложениях двухбайтовой кодировки (DBCS).It is used primarily for converting strings in double-byte character set (DBCS) applications. Все строки Visual Basic, в формате Юникод, и MidB больше не поддерживается.All Visual Basic strings are in Unicode, and MidB is no longer supported.
ПримерExample
В этом примере используется Mid инструкцию, чтобы заменить указанное число символов в строковой переменной символами из другой строки.This example uses the Mid statement to replace a specified number of characters in a string variable with characters from another string.
Dim TestString As String ' Initializes string. TestString = "The dog jumps" ' Returns "The fox jumps". Mid(TestString, 5, 3) = "fox" ' Returns "The cow jumps". Mid(TestString, 5) = "cow" ' Returns "The cow jumpe". Mid(TestString, 5) = "cow jumped over" ' Returns "The duc jumpe". Mid(TestString, 5, 3) = "duck"ТребованияRequirements
Пространство имен: Microsoft.VisualBasicNamespace: Microsoft.VisualBasic
Модуль: StringsModule: Strings
Сборка: Visual Basic (библиотека времени выполнения, в Microsoft.VisualBasic.dll)Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)Assembly: Visual Basic (библиотека времени выполнения, в Microsoft.VisualBasic.dll)Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)
См. такжеSee Also
MidСтрокиStringsЗнакомство со строками в Visual BasicIntroduction to Strings in Visual Basic
docs.microsoft.com
Asc, AscW | Возвращает значение типа Integer, представляющее код знака, соответствующий знаку. |
Chr, ChrW | Возвращает знак, связанный с указанным кодом знака. |
Filter | Возвращает массив (с индексацией от нуля), который содержит подмножество массива типа String, выделяемое согласно указанным условиям фильтрации. |
Format | Возвращает строку, отформатированную в соответствии с инструкциями, содержащимися в формате выражения String. |
FormatCurrency | Возвращает выражение в формате денежной единицы с использованием символа денежной единицы, определенного в системной панели управления. |
FormatDateTime | Возвращает строковое выражение, представляющее значение даты и времени. |
FormatNumber | Возвращает выражение в формате числа. |
FormatPercent | Возвращает выражение в формате процента (т. е. с коэффициентом 100), в конец которого добавлен знак %. |
InStr | Возвращает целое число, указывающее начальную позицию первого вхождения одной строки в другую. |
InStrRev | Возвращает позицию первого вхождения одной строки в другую, начиная с правого конца строки. |
Join | Возвращает строку, образуемую путем соединения нескольких подстрок, содержащихся в массиве. |
LCase | Возвращает строку или символ, преобразованные в нижний регистр. |
Left | Возвращает строку, содержащую указанное число знаков с левой стороны строки. |
Len | Возвращает целое число, показывающее число знаков в строке. |
LSet | Возвращает выровненную по левому краю строку запрашиваемой длины, содержащую указанную строку. |
LTrim | Возвращает строку, содержащую копию указанной строки без пробелов в начале. |
Mid | Возвращает строку, содержащую указанное число знаков строки. |
Replace | Возвращает строку, в которой указанная подстрока заданное число раз заменена другой подстрокой. |
Right | Возвращает строку, содержащую указанное число знаков с правой стороны строки. |
RSet | Возвращает выровненную по правому краю строку, содержащую указанную строку, настроенную под указанную длину. |
| Возвращает строку, содержащую копию указанной строки без пробелов в конце. |
Space | Возвращает строку, состоящую из указанного числа пробелов. |
Split | Возвращает одномерный массив (с индексацией от нуля), содержащий указанное число подстрок. |
StrComp | Возвращает -1, 0 или 1 в зависимости от результата сравнения строк. |
StrConv | Возвращает строку, преобразованную как указано. |
StrDup | Возвращает строку или объект, состоящие из указанного знака, повторенного определенное количество раз. |
StrReverse | Возвращает строку, содержащую те же знаки, что и в заданной строке, но в противоположном порядке. |
Trim | Возвращает строку, содержащую копию указанной строки без пробелов в начале и конце. |
UCase | Возвращает строку или знак, содержащий указанную строку, преобразованную в верхний регистр. |
msdn.microsoft.com
Операторы и встроенные функции VBA
Операторы Excel VBA
При написании кода VBA в Excel набор встроенных операторов используют на каждом шагу. Эти операторы делятся на математические, строковые, операторы сравнения и логические. Далее мы подробно рассмотрим каждую группу операторов.
Математические операторы
Основные математические операторы VBA перечислены в таблице ниже.
В правом столбце таблицы указан приоритет операторов, принятый по умолчанию при отсутствии скобок. Добавляя в выражение скобки, можно изменять порядок выполнения операторов VBA по своему желанию.
^ | Оператор возведения в степень | 1 |
* | Оператор умножения | 2 |
/ | Оператор деления | 2 |
\ | Оператор деления без остатка – возвращает результат деления двух чисел без остатка. Например, 7\4 возвратит результат 1 | 3 |
Mod | Оператор модуля (остатка) – возвращает остаток от деления двух чисел. Например, 8 Mod 3 возвратит результат 2. | 4 |
+ | Оператор сложения | 5 |
— | Оператор вычитания | 5 |
Строковые операторы
Основной строковый оператор в Excel VBA – это оператор конкатенации & (слияние):
& | Оператор конкатенации. К примеру, выражение «A» & «B» возвратит результат AB. |
Операторы сравнения
Операторы сравнения используются для сравнения двух чисел или строк и возвращают логическое значение типа Boolean (True или False). Основные операторы сравнения Excel VBA перечислены в этой таблице:
= | Равно |
<> | Не равно |
< | Меньше |
> | Больше |
<= | Меньше либо равно |
>= | Больше либо равно |
Логические операторы
Логические операторы, как и операторы сравнения, возвращают логическое значение типа Boolean (True или False). Основные логические операторы Excel VBA перечислены в таблице ниже:
And | Операция конъюнкции, логический оператор И. Например, выражение A And B возвратит True, если A и B оба равны True, в противном случае возвратит False. |
Or | Операция дизъюнкции, логический оператор ИЛИ. Например, выражение A Or B возвратит True, если A или B равны True, и возвратит False, если A и B оба равны False. |
Not | Операция отрицания, логический оператор НЕ. Например, выражение Not A возвратит True, если A равно False, или возвратит False, если A равно True. |
В приведённой выше таблице перечислены не все логические операторы, доступные в VBA. Полный список логических операторов можно найти на сайте Visual Basic Developer Center.
Встроенные функции
В VBA доступно множество встроенных функций, которые могут быть использованы при написании кода. Ниже перечислены некоторые из наиболее часто используемых:
Abs | Возвращает абсолютную величину заданного числа. Пример:
| ||||||||||||||||||||
Chr | Возвращает символ ANSI, соответствующий числовому значению параметра. Пример:
| ||||||||||||||||||||
Date | Возвращает текущую системную дату. | ||||||||||||||||||||
DateAdd | Добавляет определённый временной интервал к заданной дате. Синтаксис функции: DateAdd(интервал, число, дата) Где аргумент интервал определяет тип временного интервала, добавляемого к заданной дате в количестве, указанном в аргументе число. Аргумент интервал может принимать одно из следующих значений:
Пример:
| ||||||||||||||||||||
DateDiff | Вычисляет количество определённых временных интервалов между двумя заданными датами. Пример:
| ||||||||||||||||||||
Day | Возвращает целое число, соответствующее дню месяца в заданной дате. Пример: Day(«29/01/2015») возвращает число 29. | ||||||||||||||||||||
Hour | Возвращает целое число, соответствующее количеству часов в заданном времени. Пример: Hour(«22:45:00») возвращает число 22. | ||||||||||||||||||||
InStr | Принимает в качестве аргументов целое число и две строки. Возвращает позицию вхождения второй строки внутри первой, начиная поиск с позиции, заданной целым числом. Пример:
Примечание: Аргумент-число может быть не задан, в таком случае поиск начинается с первого символа строки, заданной во втором аргументе функции. | ||||||||||||||||||||
Int | Возвращает целую часть заданного числа. Пример: Int(5.79) возвращает результат 5. | ||||||||||||||||||||
Isdate | Возвращает True, если заданное значение является датой, или False – если датой не является. Пример:
| ||||||||||||||||||||
IsError | Возвращает True, если заданное значение является ошибкой, или False – если ошибкой не является. | ||||||||||||||||||||
IsMissing | В качестве аргумента функции передаётся имя необязательного аргумента процедуры. IsMissing возвращает True, если для рассматриваемого аргумента процедуры не передано значение. | ||||||||||||||||||||
IsNumeric | Возвращает True, если заданное значение может быть рассмотрено как число, в противном случае возвращает False. | ||||||||||||||||||||
Left | Возвращает заданное количество символов от начала переданной строки. Синтаксис функции вот такой: Left(строка, длина) где строка – это исходная строка, а длина – количество возвращаемых символов, считая от начала строки. Пример:
| ||||||||||||||||||||
Len | Возвращает количество символов в строке. Пример: Len(«абвгдеж») возвращает число 7. | ||||||||||||||||||||
Month | Возвращает целое число, соответствующее месяцу в заданной дате. Пример: Month(«29/01/2015») возвращает значение 1. | ||||||||||||||||||||
Mid | Возвращает заданное количество символов из середины переданной строки. Синтаксис функции: Mid(строка, начало, длина) где строка – это исходная строка, начало – позиция начала извлекаемой строки, длина – количество символов, которые требуется извлечь. Пример:
| ||||||||||||||||||||
Minute | Возвращает целое число, соответствующее количеству минут в заданном времени.Пример: Minute(«22:45:15») возвращает значение 45. | ||||||||||||||||||||
Now | Возвращает текущую системную дату и время. | ||||||||||||||||||||
Right | Возвращает заданное количество символов от конца переданной строки. Синтаксис функции: Right(строка, длина) Где строка – это исходная строка, а длина – это количество символов, которые надо извлечь, считая от конца заданной строки. Пример:
| ||||||||||||||||||||
Second | Возвращает целое число, соответствующее количеству секунд в заданном времени. Пример: Second(«22:45:15») возвращает значение 15. | ||||||||||||||||||||
Sqr | Возвращает квадратный корень числовой величины, переданной в аргументе. Пример:
| ||||||||||||||||||||
Time | Возвращает текущее системное время. | ||||||||||||||||||||
Ubound | Возвращает верхний индекс измерения заданного массива. Примечание: Для многомерных массивов в качестве необязательного аргумента может быть указано, индекс какого именно измерения нужо возвратить. Если не указано, то по умолчанию равно 1. | ||||||||||||||||||||
Year | Возвращает целое число, соответствующее году в заданной дате.Пример: Year(«29/01/2015») возвращает значение 2015. |
Данный список включает в себя только избранные наиболее часто употребляемые встроенные функции Excel Visual Basic. Исчерпывающий список функций VBA, доступных для использования в макросах Excel, можно найти на сайте Visual Basic Developer Center.
Оцените качество статьи. Нам важно ваше мнение:
office-guru.ru