Строковые функции (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 Sub

itteach.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

Тип исключенияException type УсловиеCondition
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

Строковые функции (Visual Basic)

Метод .NET Framework

Описание

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

Возвращает выровненную по правому краю строку, содержащую указанную строку, настроенную под указанную длину.

RTrim

Возвращает строку, содержащую копию указанной строки без пробелов в конце.

Space

Возвращает строку, состоящую из указанного числа пробелов.

Split

Возвращает одномерный массив (с индексацией от нуля), содержащий указанное число подстрок.

StrComp

Возвращает -1, 0 или 1 в зависимости от результата сравнения строк.

StrConv

Возвращает строку, преобразованную как указано.

StrDup

Возвращает строку или объект, состоящие из указанного знака, повторенного определенное количество раз.

StrReverse

Возвращает строку, содержащую те же знаки, что и в заданной строке, но в противоположном порядке.

Trim

Возвращает строку, содержащую копию указанной строки без пробелов в начале и конце.

UCase

Возвращает строку или знак, содержащий указанную строку, преобразованную в верхний регистр.

msdn.microsoft.com

Операторы и встроенные функции VBA

Операторы Excel VBA

При написании кода VBA в Excel набор встроенных операторов используют на каждом шагу. Эти операторы делятся на математические, строковые, операторы сравнения и логические. Далее мы подробно рассмотрим каждую группу операторов.

Математические операторы

Основные математические операторы VBA перечислены в таблице ниже.

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

Оператор Действие Приоритет(1 — высший; 5 — низший)
^ Оператор возведения в степень 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 Возвращает абсолютную величину заданного числа.

Пример:

  • Abs(-20) возвращает значение 20;
  • Abs(20) возвращает значение 20.
Chr Возвращает символ ANSI, соответствующий числовому значению параметра.

Пример:

  • Chr(10) возвращает перенос строки;
  • Chr(97) возвращает символ a.
Date Возвращает текущую системную дату.
DateAdd Добавляет определённый временной интервал к заданной дате. Синтаксис функции:

DateAdd(интервал, число, дата)

Где аргумент интервал определяет тип временного интервала, добавляемого к заданной дате в количестве, указанном в аргументе число.

Аргумент интервал может принимать одно из следующих значений:

Интервал Значение
yyyy год
q квартал
m месяц
y день года
d день
w день недели
ww неделя
h час
n минута
s секунда

Пример:

  • DateAdd(«d», 32, «01/01/2015») добавляет 32 дня к дате 01/01/2015 и, таким образом, возвращает дату 02/02/2015.
  • DateAdd(«ww», 36, «01/01/2015») добавляет 36 недель к дате 01/01/2015 и возвращает дату 09/09/2015.
DateDiff Вычисляет количество определённых временных интервалов между двумя заданными датами.

Пример:

  • DateDiff(«d», «01/01/2015», «02/02/2015») вычисляет количество дней между датами 01/01/2015 и 02/02/2015, возвращает результат 32.
  • DateDiff(«ww», «01/01/2015», «03/03/2016») вычисляет количество недель между датами 01/01/2015 и 03/03/2016, возвращает результат 61.
Day Возвращает целое число, соответствующее дню месяца в заданной дате.

Пример: Day(«29/01/2015») возвращает число 29.

Hour Возвращает целое число, соответствующее количеству часов в заданном времени.

Пример: Hour(«22:45:00») возвращает число 22.

InStr Принимает в качестве аргументов целое число и две строки. Возвращает позицию вхождения второй строки внутри первой, начиная поиск с позиции, заданной целым числом.

Пример:

  • InStr(1, «Вот искомое слово», «слово») возвращает число 13.
  • InStr(14, «Вот искомое слово, а вот еще искомое слово», «слово») возвращает число 38.

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

Int Возвращает целую часть заданного числа.

Пример: Int(5.79) возвращает результат 5.

Isdate Возвращает True, если заданное значение является датой, или False – если датой не является.

Пример:

  • IsDate(«01/01/2015») возвращает True;
  • IsDate(100) возвращает False.
IsError Возвращает True, если заданное значение является ошибкой, или False – если ошибкой не является.
IsMissing В качестве аргумента функции передаётся имя необязательного аргумента процедуры. IsMissing возвращает True, если для рассматриваемого аргумента процедуры не передано значение.
IsNumeric Возвращает True, если заданное значение может быть рассмотрено как число, в противном случае возвращает False.
Left Возвращает заданное количество символов от начала переданной строки. Синтаксис функции вот такой:

Left(строка, длина)

где строка – это исходная строка, а длина – количество возвращаемых символов, считая от начала строки.

Пример:

  • Left(«абвгдежзиклмн», 4) возвращает строку «абвг»;
  • Left(«абвгдежзиклмн», 1) возвращает строку «а».
Len Возвращает количество символов в строке.

Пример: Len(«абвгдеж») возвращает число 7.

Month Возвращает целое число, соответствующее месяцу в заданной дате.

Пример: Month(«29/01/2015») возвращает значение 1.

Mid Возвращает заданное количество символов из середины переданной строки. Синтаксис функции:

Mid(строка, начало, длина)

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

Пример:

  • Mid(«абвгдежзиклмн», 4, 5) возвращает строку «гдежз»;
  • Mid(«абвгдежзиклмн», 10, 2) возвращает строку «кл».
Minute Возвращает целое число, соответствующее количеству минут в заданном времени.Пример: Minute(«22:45:15») возвращает значение 45.
Now Возвращает текущую системную дату и время.
Right Возвращает заданное количество символов от конца переданной строки. Синтаксис функции:

Right(строка, длина)

Где строка – это исходная строка, а длина – это количество символов, которые надо извлечь, считая от конца заданной строки.

Пример:

  • Right(«абвгдежзиклмн», 4) возвращает строку «клмн»;
  • Right(«абвгдежзиклмн», 1) возвращает строку «н».
Second Возвращает целое число, соответствующее количеству секунд в заданном времени.

Пример: Second(«22:45:15») возвращает значение 15.

Sqr Возвращает квадратный корень числовой величины, переданной в аргументе.

Пример:

  • Sqr(4) возвращает значение 2;
  • Sqr(16) возвращает значение 4.
Time Возвращает текущее системное время.
Ubound Возвращает верхний индекс измерения заданного массива.

Примечание: Для многомерных массивов в качестве необязательного аргумента может быть указано, индекс какого именно измерения нужо возвратить. Если не указано, то по умолчанию равно 1.

Year Возвращает целое число, соответствующее году в заданной дате.Пример: Year(«29/01/2015») возвращает значение 2015.

Данный список включает в себя только избранные наиболее часто употребляемые встроенные функции Excel Visual Basic. Исчерпывающий список функций VBA, доступных для использования в макросах Excel, можно найти на сайте Visual Basic Developer Center.

Оцените качество статьи. Нам важно ваше мнение:

office-guru.ru