Как обрезать строку vba excel

Извлечение (вырезание) части строки с помощью кода VBA Excel из значения ячейки или переменной. Функции Left, Mid и Right, их синтаксис и аргументы. Пример.

Эта функция извлекает левую часть строки с заданным количеством символов.

Синтаксис функции Left:

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

  • строка — обязательный аргумент: строковое выражение, из значения которого вырезается левая часть;
  • длина — обязательный аргумент: числовое выражение, указывающее количество извлекаемых символов.

Если аргумент «длина» равен нулю, возвращается пустая строка. Если аргумент «длина» равен или больше длины строки, возвращается строка полностью.

Функция Mid

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

Синтаксис функции Mid:

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

  • строка — обязательный аргумент: строковое выражение, из значения которого вырезается часть строки;
  • начало — обязательный аргумент: числовое выражение, указывающее положение символа в строке, с которого начинается извлекаемая часть;
  • длина — необязательный аргумент: числовое выражение, указывающее количество вырезаемых символов.

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

Функция Right

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

Синтаксис функции Right:

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

  • строка — обязательный аргумент: строковое выражение, из значения которого вырезается правая часть;
  • длина — обязательный аргумент: числовое выражение, указывающее количество извлекаемых символов.

Если аргумент «длина» равен нулю, возвращается пустая строка. Если аргумент «длина» равен или больше длины строки, возвращается строка полностью.

Пример

В этом примере будем использовать все три представленные выше функции для извлечения из ФИО его составных частей. Для этого запишем в ячейку «A1» строку «Иванов Сидор Петрович», из которой вырежем отдельные компоненты и запишем их в ячейки «A2:A4».

Sub Primer()

Dim n1 As Long, n2 As Long

Range(«A1») = «Иванов Сидор Петрович»

‘Определяем позицию первого пробела

n1 = InStr(1, Range(«A1»), » «)

‘Определяем позицию второго пробела

n2 = InStr(n1 + 1, Range(«A1»), » «)

‘Извлекаем фамилию

Range(«A2») = Left(Range(«A1»), n1 1)

‘Извлекаем имя

Range(«A3») = Mid(Range(«A1»), n1 + 1, n2 n1 1)

‘Извлекаем отчество

Range(«A4») = Right(Range(«A1»), Len(Range(«A1»)) n2)

End Sub

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

Содержание

  1. Mid function
  2. Syntax
  3. Remarks
  4. Example
  5. See also
  6. Support and feedback
  7. Функция Mid
  8. Синтаксис
  9. Примечания
  10. Пример
  11. См. также
  12. Поддержка и обратная связь
  13. Оператор Mid
  14. Синтаксис
  15. Замечания
  16. Пример
  17. См. также
  18. Поддержка и обратная связь
  19. VBA Excel. Функции Left, Mid, Right (вырезать часть строки)
  20. Функция Left
  21. Функция Mid
  22. Функция Right
  23. Пример
  24. VBA Excel. Работа с текстом (функции)
  25. Функции для работы с текстом
  26. Ключевые слова для работы с текстом
  27. Примеры
  28. Вывод прямых парных кавычек

Mid function

Returns a Variant (String) containing a specified number of characters from a string.

Syntax

The Mid function syntax has these named arguments:

Part Description
string Required. String expression from which characters are returned. If string contains Null, Null is returned.
start Required; Long. Character position in string at which the part to be taken begins. If start is greater than the number of characters in string, Mid returns a zero-length string («»).
length Optional; Variant (Long). Number of characters to return. If omitted or if there are fewer than length characters in the text (including the character at start), all characters from the start position to the end of the string are returned.

To determine the number of characters in string, use the Len function.

Use the MidB function with byte data contained in a string, as in double-byte character set languages. Instead of specifying the number of characters, the arguments specify numbers of bytes. For sample code that uses MidB, see the second example in the example topic.

Example

The first example uses the Mid function to return a specified number of characters from a string.

The second example use MidB and a user-defined function (MidMbcs) to also return characters from string. The difference here is that the input string is ANSI and the length is in bytes.

See also

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Источник

Функция Mid

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

Синтаксис

Синтаксис функции Mid состоит из следующих именованных аргументов:

Часть Описание
строка Обязательный аргумент. Строковое выражение, из которого возвращаются символы. Если строка содержит значение NULL, возвращается NULL.
начало Обязательный аргумент. Long. Позиция символа в строке, с которой начинается забираемая часть. Если значение аргумента начало больше, чем число символов в строке, функция Mid возвращает строку нулевой длины («»).
длина Необязательный аргумент. Variant (Long). Число возвращаемых символов. Если не указано или если меньше, чем символов длины в тексте (включая символ в начале), возвращаются все символы от начальной позиции до конца строки.

Примечания

Чтобы определить число символов в строке, используйте функцию Len.

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

Пример

В первом примере с помощью функции Mid возвращается указанное количество знаков строки.

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

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Оператор Mid

Заменяет указанное количество символов в переменной со значением типа Variant (String) символами из другой строки.

Синтаксис

Mid(stringvar, start, [ length ] ) =string

Синтаксис свойства Mid состоит из следующих частей:

Part Описание
stringvar Обязательно. Имя переменной строки, которую необходимо изменить.
start Обязательный элемент; значение типа Variant (Long). Положение символа в переменной stringvar, с которого начинается замена текста.
длина Необязательный аргумент. Variant (Long). Количество символов для замены. Если значение опущено, используются все символы string.
строка Обязательный аргумент. Строковое выражение, которое частично заменяет stringvar.

Замечания

Количество заменяемых символов всегда меньше или равно количеству символов в stringvar.

Используйте оператор MidB с данными байтов, содержащимися в строке. В инструкции MidBstart задает позицию байтов в строковом квартале , где начинается замена, а длина — количество байтов для замены.

Пример

В этом примере оператор Mid используется для замены указанного количества символов в строковой переменной символами из другой строки.

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

VBA Excel. Функции Left, Mid, Right (вырезать часть строки)

Извлечение (вырезание) части строки с помощью кода VBA Excel из значения ячейки или переменной. Функции Left, Mid и Right, их синтаксис и аргументы. Пример.

Функция Left

Эта функция извлекает левую часть строки с заданным количеством символов.

Синтаксис функции Left:

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

  • строка — обязательный аргумент: строковое выражение, из значения которого вырезается левая часть;
  • длина — обязательный аргумент: числовое выражение, указывающее количество извлекаемых символов.

Если аргумент «длина» равен нулю, возвращается пустая строка. Если аргумент «длина» равен или больше длины строки, возвращается строка полностью.

Функция Mid

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

Синтаксис функции Mid:

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

  • строка — обязательный аргумент: строковое выражение, из значения которого вырезается часть строки;
  • начало — обязательный аргумент: числовое выражение, указывающее положение символа в строке, с которого начинается извлекаемая часть;
  • длина — необязательный аргумент: числовое выражение, указывающее количество вырезаемых символов.

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

Функция Right

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

Синтаксис функции Right:

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

  • строка — обязательный аргумент: строковое выражение, из значения которого вырезается правая часть;
  • длина — обязательный аргумент: числовое выражение, указывающее количество извлекаемых символов.

Если аргумент «длина» равен нулю, возвращается пустая строка. Если аргумент «длина» равен или больше длины строки, возвращается строка полностью.

Пример

В этом примере будем использовать все три представленные выше функции для извлечения из ФИО его составных частей. Для этого запишем в ячейку «A1» строку «Иванов Сидор Петрович», из которой вырежем отдельные компоненты и запишем их в ячейки «A2:A4».

Источник

VBA Excel. Работа с текстом (функции)

Работа с текстом в коде VBA Excel. Функции, оператор & и другие ключевые слова для работы с текстом. Примеры использования некоторых функций и ключевых слов.

Функции для работы с текстом

Основные функции для работы с текстом в VBA Excel:

Функция Описание
Asc(строка) Возвращает числовой код символа, соответствующий первому символу строки. Например: MsgBox Asc(«/Stop»). Ответ: 47, что соответствует символу «/».
Chr(код символа) Возвращает строковый символ по указанному коду. Например: MsgBox Chr(47). Ответ: «/».
Format(Expression, [FormatExpression], [FirstDayOfWeek], [FirstWeekOfYear]) Преобразует число, дату, время в строку (тип данных Variant (String)), отформатированную в соответствии с инструкциями, включенными в выражение формата. Подробнее…
InStr([начало], строка1, строка2, [сравнение]) Возвращает порядковый номер символа, соответствующий первому вхождению одной строки (строка2) в другую (строка1) с начала строки. Подробнее…
InstrRev(строка1, строка2, [начало, [сравнение]]) Возвращает порядковый номер символа, соответствующий первому вхождению одной строки (строка2) в другую (строка1) с конца строки. Подробнее…
Join(SourceArray,[Delimiter]) Возвращает строку, созданную путем объединения нескольких подстрок из массива. Подробнее…
LCase(строка) Преобразует буквенные символы строки в нижний регистр.
Left(строка, длина) Возвращает левую часть строки с заданным количеством символов. Подробнее…
Len(строка) Возвращает число символов, содержащихся в строке.
LTrim(строка) Возвращает строку без начальных пробелов (слева). Подробнее…
Mid(строка, начало, [длина]) Возвращает часть строки с заданным количеством символов, начиная с указанного символа (по номеру). Подробнее…
Replace(expression, find, replace, [start], [count], [compare]) Возвращает строку, полученную в результате замены одной подстроки в исходном строковом выражении другой подстрокой указанное количество раз. Подробнее…
Right(строка, длина) Возвращает правую часть строки с заданным количеством символов. Подробнее…
RTrim(строка) Возвращает строку без конечных пробелов (справа). Подробнее…
Space(число) Возвращает строку, состоящую из указанного числа пробелов. Подробнее…
Split(Expression,[Delimiter],[Limit],[Compare]) Возвращает одномерный массив подстрок, извлеченных из указанной строки с разделителями. Подробнее…
StrComp(строка1, строка2, [сравнение]) Возвращает числовое значение Variant (Integer), показывающее результат сравнения двух строк. Подробнее…
StrConv(string, conversion) Изменяет регистр символов исходной строки в соответствии с заданным параметром «conversion». Подробнее…
String(число, символ) Возвращает строку, состоящую из указанного числа символов. В выражении «символ» может быть указан кодом символа или строкой, первый символ которой будет использован в качестве параметра «символ». Подробнее…
StrReverse(строка) Возвращает строку с обратным порядком следования знаков по сравнению с исходной строкой. Подробнее…
Trim(строка) Возвращает строку без начальных (слева) и конечных (справа) пробелов. Подробнее…
UCase(строка) Преобразует буквенные символы строки в верхний регистр.
Val(строка) Возвращает символы, распознанные как цифры с начала строки и до первого нецифрового символа, в виде числового значения соответствующего типа. Подробнее…
WorksheetFunction.Trim(строка) Функция рабочего листа, которая удаляет все лишние пробелы (начальные, конечные и внутренние), оставляя внутри строки одиночные пробелы.

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

Ключевые слова для работы с текстом

Ключевое слово Описание
& Оператор & объединяет два выражения (результат = выражение1 & выражение2). Если выражение не является строкой, оно преобразуется в Variant (String), и результат возвращает значение Variant (String). Если оба выражения возвращают строку, результат возвращает значение String.
vbCrLf Константа vbCrLf сочетает в себе возврат каретки и перевод строки (Chr(13) + Chr(10)) и переносит последующий текст на новую строку (результат = строка1 & vbCrLf & строка2).
vbNewLine Константа vbNewLine в VBA Excel аналогична константе vbCrLf, также сочетает в себе возврат каретки и перевод строки (Chr(13) + Chr(10)) и переносит текст на новую строку (результат = строка1 & vbNewLine & строка2).

Примеры

Вывод прямых парных кавычек

Прямые парные кавычки в VBA Excel являются спецсимволами и вывести их, заключив в самих себя или в одинарные кавычки (апострофы), невозможно. Для этого подойдет функция Chr:

Источник

В этой статье разберем работу со строками в VBA на примерах функций InStr, LCASE, UCase, Left, Right, Mid, LTrim, RTrim, Trim, Len, Replace, Space, StrComp, String, StrReverse.

Строки — это последовательность символов, которая может состоять либо из алфавитов, цифр, специальных символов, либо из всех них. Переменная называется строкой, если она заключена в двойные кавычки «».

Содержание:

  • Синтаксис
  • Примеры
  • Строковые функции
  • Название функции и описание
  • InStr
  • Синтаксис
  • Параметр Описание
  • пример
  • Синтаксис
  • Параметр Описание
  • пример
  • LCASE
  • Синтаксис
  • пример
  • UCase
  • Синтаксис
  • пример
  • Left
  • Синтаксис
  • Параметр Описание
  • пример
  • Right
  • Синтаксис
  • Параметр Описание
  • пример
  • Mid
  • Синтаксис
  • Параметр Описание
  • LTrim
  • Синтаксис
  • пример
  • RTrim
  • Синтаксис
  • пример
  • Trim
  • Синтаксис
  • пример
  • Len
  • Синтаксис
  • пример
  • Replace
  • Синтаксис
  • Параметр Описание
  • пример
  • Space
  • Синтаксис
  • Параметр Описание
  • пример
  • StrComp
  • Синтаксис
  • Параметр Описание
  • пример
  • String
  • Синтаксис
  • Параметр Описание
  • пример
  • StrReverse
  • Синтаксис
  • пример

Синтаксис

variablename = "string"

Примеры

str1 = "string"   ' Only Alphabets
str2 = "132.45"   ' Only Numbers
str3 = "!@#$;*"  ' Only Special Characters
Str4 = "Asc23@#"  ' Has all the above

Строковые функции

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

Название функции и описание

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

Синтаксис

InStr([start,]string1,string2[,compare])

Параметр Описание

  • Пуск — необязательный параметр. Указывает начальную позицию для поиска. Поиск начинается с первой позиции слева направо.
  • String1 — требуемый параметр. Строка для поиска.
  • String2 — требуемый параметр. Строка, по которой выполняется поиск String1.
  • Compare — Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
  • 0 = vbBinaryCompare — выполняет двоичное сравнение (по умолчанию)
  • 1 = vbTextCompare — выполняет сравнение текста

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click() 
   Dim Var As Variant 
   Var = "Microsoft VBScript" 
   MsgBox ("Line 1 : " & InStr(1, Var, "s")) 
   MsgBox ("Line 2 : " & InStr(7, Var, "s")) 
   MsgBox ("Line 3 : " & InStr(1, Var, "f", 1)) 
   MsgBox ("Line 4 : " & InStr(1, Var, "t", 0)) 
   MsgBox ("Line 5 : " & InStr(1, Var, "i")) 
   MsgBox ("Line 6 : " & InStr(7, Var, "i")) 
   MsgBox ("Line 7 : " & InStr(Var, "VB")) 
End Sub 

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : 6
Line 2 : 0
Line 3 : 8
Line 4 : 9
Line 5 : 2
Line 6 : 16
Line 7 : 11

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

InStrRev

Функция InStrRev возвращает первое вхождение одной строки в другую строку. Поиск происходит справа налево.

Синтаксис

InStrRev(string1,string2[,start,[compare]])

Параметр Описание

  • String1 — требуемый параметр. Строка для поиска.
  • String2 — требуемый параметр. Строка, по которой выполняется поиск String1.
  • Пуск — необязательный параметр. Указывает начальную позицию для поиска. Поиск начинается с первой позиции справа налево.
  • Compare — Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
  • 0 = vbBinaryCompare — выполняет двоичное сравнение (по умолчанию)
  • 1 = vbTextCompare — выполняет сравнение текста

пример

Добавьте кнопку и установите следующую функцию.

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & InStrRev(var,"s",10))
   msgbox("Line 2 : " & InStrRev(var,"s",7))
   msgbox("Line 3 : " & InStrRev(var,"f",-1,1))
   msgbox("Line 4 : " & InStrRev(var,"t",5))
   msgbox("Line 5 : " & InStrRev(var,"i",7))
   msgbox("Line 6 : " & InStrRev(var,"i",7))
   msgbox("Line 7 : " & InStrRev(var,"VB",1))
End Sub

После выполнения вышеуказанного скрипта он производит следующий результат.

Line 1 : 6
Line 2 : 6
Line 3 : 8
Line 4 : 0
Line 5 : 2
Line 6 : 2
Line 7 : 0

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

LCASE

Функция LCase возвращает строку после преобразования введенной строки в строчные буквы.

Синтаксис

Lcase(String)

пример

Добавьте кнопку и поместите следующую функцию внутри нее.

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & LCase(var))
   
   var = "MS VBSCRIPT"
   msgbox("Line 2 : " & LCase(var))
   
   var = "microsoft"
   msgbox("Line 3 : " & LCase(var))
End Sub

После выполнения вышеуказанного скрипта он производит следующий вывод.

Line 1 : microsoft vbscript
Line 2 : ms vbscript
Line 3 : microsoft

Возвращает нижний регистр указанной строки.

UCase

Функция UCase возвращает строку после преобразования введенной строки в буквы буквы UPPER.

Синтаксис

UCase(String)

пример

Добавьте кнопку и поместите следующую функцию внутри нее.

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & UCase(var))
   
   var = "MS VBSCRIPT"
   msgbox("Line 2 : " & UCase(var))
   
   var = "microsoft"
   msgbox("Line 3 : " & UCase(var))
End Sub

После выполнения вышеуказанного скрипта он производит следующий вывод.

Line 1 : MICROSOFT VBSCRIPT
Line 2 : MS VBSCRIPT
Line 3 : MICROSOFT

Возвращает верхний регистр указанной строки.

Left

Функция Left возвращает указанное количество символов с левой стороны данной входной строки.

Синтаксис

Left(String, Length)

Параметр Описание

  • String — обязательный параметр. Строка ввода, из которой указанное число символов должно быть возвращено с левой стороны.
  • Длина — требуемый параметр. Целое число, определяющее количество возвращаемых символов.

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   Dim var as Variant
   
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & Left(var,2))
   
   var = "MS VBSCRIPT"
   msgbox("Line 2 : " & Left(var,5))
   
   var = "microsoft"
   msgbox("Line 3 : " & Left(var,9))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : Mi
Line 2 : MS VB
Line 3 : microsoft

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

Right

Функция Right возвращает указанное количество символов с правой стороны данной входной строки.

Синтаксис

Right(String, Length)

Параметр Описание

  • String — обязательный параметр. Строка ввода, из которой указанное число символов должно быть возвращено с правой стороны.
  • Длина — требуемый параметр. Целое число, которое задает количество возвращаемых символов.

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & Right(var,2))
   
   var = "MS VBSCRIPT"
   msgbox("Line 2 : " & Right(var,5))
   
   var = "microsoft"
   msgbox("Line 3 : " & Right(var,9))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : pt
Line 2 : CRIPT
Line 3 : microsoft

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

Mid

Mid функция возвращает указанное количество символов из заданной входной строки.

Синтаксис

Mid(String,start[,Length])

Параметр Описание

  • String — обязательный параметр. Строка ввода, из которой задано количество символов, которые нужно вернуть.
  • Начало — требуемый параметр. Целое число, определяющее начальную позицию строки.
  • Длина — необязательный параметр. Целое число, определяющее количество возвращаемых символов.

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   Dim var as Variant
   var = "Microsoft VBScript"
   msgbox("Line 1 : " & Mid(var,2))
   msgbox("Line 2 : " & Mid(var,2,5))
   msgbox("Line 3 : " & Mid(var,5,7))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : icrosoft VBScript
Line 2 : icros
Line 3 : osoft V

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

LTrim

Функция Ltrim удаляет пробелы с левой стороны строки.

Синтаксис

LTrim(String)

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   Dim var as Variant
   var =       "             Microsoft VBScript"
   msgbox "After Ltrim : " & LTrim(var)
End Sub

Когда вы выполняете функцию, она производит следующий вывод.

After Ltrim : Microsoft VBScript

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

RTrim

Функция Rtrim удаляет пробелы с правой стороны строки.

Синтаксис

RTrim(String)

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   Dim var as Variant
   var =       "Microsoft VBScript           "
   msgbox("After Rtrim : " & RTrim(var))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

After Rtrim : Microsoft VBScript

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

Trim

Функция Trim удаляет как ведущее, так и конечное пустое пространство данной входной строки.

Синтаксис

Trim(String)

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   var = "Microsoft VBScript"
   var =       "            Microsoft VBScript           "
   msgbox ("After Trim : " & Trim(var))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

After trim : Microsoft VBScript

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

Len

Функция Len возвращает длину данной входной строки, включая пробелы.

Синтаксис

Len(String)

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   Dim var1 as Variant
   Dim var2 as Variant
   
   var1 ="Microsoft VBScript"
   msgbox("Length of var1 is : " & Len(var1))
  
   var2 =       "       Microsoft VBScript           "
   msgbox ("Length of var2 is : " & Len(var2))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Length of var1 is : 18
Length of var2 is : 36

Возвращает длину данной строки.

Replace

Функция Replace заменяет указанную часть строки на определенную строку, указанное количество раз.

Синтаксис

Replace(string,find,replacewith[,start[,count[,compare]]])

Параметр Описание

  • String — обязательный параметр. Строка ввода, которую нужно искать для замены.
  • Find — требуемый параметр. Часть строки, которая будет заменена.
  • Replacewith — обязательный параметр. Строка замены, которая будет заменена на параметр find.
  • Start — необязательный параметр. Задает начальную позицию, из которой нужно искать и заменять строку. Значение по умолчанию — 1.
  • Count — необязательный параметр. Указывает количество раз, которое должна выполняться замена.
  • Compare — Необязательный параметр. Указывает метод сравнения, который будет использоваться. Значение по умолчанию — 0.
  • 0 = vbBinaryCompare — выполняет двоичное сравнение
  • 1 = vbTextCompare — выполняет текстовое сравнение

пример

Private Sub Constant_demo_Click()
   Dim var as Variant
   var = "This is VBScript Programming"
  
   'VBScript to be replaced by MS VBScript
   msgbox("Line 1: " & Replace(var,"VBScript","MS VBScript"))
  
   'VB to be replaced by vb
   msgbox("Line 2: " & Replace(var,"VB","vb"))
  
   ''is' replaced by ##
   msgbox("Line 3: " & Replace(var,"is","##"))
  
   ''is' replaced by ## ignores the characters before the first occurence
   msgbox("Line 4: " & Replace(var,"is","##",5))
  
   ''s' is replaced by ## for the next 2 occurences.
   msgbox("Line 5: " & Replace(var,"s","##",1,2))
  
   ''r' is replaced by ## for all occurences textual comparison.
   msgbox("Line 6: " & Replace(var,"r","##",1,-1,1))
  
   ''t' is replaced by ## for all occurences Binary comparison
   msgbox("Line 7: " & Replace(var,"t","##",1,-1,0))
  
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1: This is MS VBScript Programming
Line 2: This is vbScript Programming
Line 3: Th## ## VBScript Programming
Line 4: ## VBScript Programming
Line 5: Thi## i## VBScript Programming
Line 6: This is VBSc##ipt P##og##amming
Line 7: This is VBScrip## Programming

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

Space

Функция Space заполняет строку конкретным количеством пробелов.

Синтаксис

space(number)

Параметр Описание

Номер — требуемый параметр. Количество пробелов, которые мы хотим добавить к данной строке.

пример

Private Sub Constant_demo_Click()
   Dim var1 as Variant
   
   var1 = "Microsoft"
   Dim var2 as Variant
   
   var2 = "VBScript"
   msgbox(var1 & Space(2)& var2)
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Microsoft VBScript

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

StrComp

Функция StrComp возвращает целочисленное значение после сравнения двух заданных строк. Он может возвращать любое из трех значений -1, 0 или 1 на основе входных строк для сравнения.

  • Если String1 меньше String2, то StrComp возвращает -1
  • Если String1 равно String2, то StrComp возвращает 0
  • Если String1 больше String2, то StrComp возвращает 1

Синтаксис

StrComp(string1,string2[,compare])

Параметр Описание

  • String1 — требуемый параметр. Первое строковое выражение.
  • String2 — требуемый параметр. Второе строковое выражение.
  • Compare — Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
  • 0 = vbBinaryCompare — выполняет двоичное сравнение (по умолчанию)
  • 1 = vbTextCompare — выполняет сравнение текста

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   Dim var1 as Variant
   msgbox("Line 1 :" & StrComp("Microsoft","Microsoft"))
   msgbox("Line 2 :" &StrComp("Microsoft","MICROSOFT"))
   msgbox("Line 3 :" &StrComp("Microsoft","MiCrOsOfT"))
   msgbox("Line 4 :" &StrComp("Microsoft","MiCrOsOfT",1))
   msgbox("Line 5 :" &StrComp("Microsoft","MiCrOsOfT",0))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 :0
Line 2 :1
Line 3 :1
Line 4 :0
Line 5 :1

Возвращает целочисленное значение после сравнения двух указанных строк.

String

Функция String заполняет строку указанным символом для указанного количества раз.

Синтаксис

String(number,character)

Параметр Описание

  • Номер — требуемый параметр. Целочисленное значение, которое будет повторяться в течение определенного количества раз против параметра символа.
  • Символ — требуемый параметр. Значение символа, которое должно повторяться определенное количество раз.

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   msgbox("Line 1 :" & String(3,"$"))
   msgbox("Line 2 :" & String(4,"*"))
   msgbox("Line 3 :" & String(5,100))
   msgbox("Line 4 :" & String(6,"ABCDE"))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 :$$$
Line 2 :****
Line 3 :ddddd
Line 4 :AAAAAA

Возвращает строку с указанным символом для указанного количества раз.

StrReverse

Функция StrReverse меняет указанную строку.

Синтаксис

StrReverse(string)

пример

Добавьте кнопку и добавьте следующую функцию.

Private Sub Constant_demo_Click()
   msgbox("Line 1 : " & StrReverse("VBSCRIPT"))
   msgbox("Line 2 : " & StrReverse("My First VBScript"))
   msgbox("Line 3 : " & StrReverse("123.45"))
End Sub

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : TPIRCSBV
Line 2 : tpircSBV tsriF yM
Line 3 : 54.321

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

 С уважением, авторы сайта Компьютерапия

Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!

В этой статье поговорим о том, как работать со строкой. В процессе работы бывает необходимо взять значение не всей строки, а только её части. Для этого в VBA есть несколько функций, которые помогут вам решить данную задачу. Это функции Left(), Right() и Mid(). Но обо всем по порядку.

Left(string, length)

Left() — это функция, которая позволяет взять из указанной строки определенное количество символов слева. Например:

Left(«строка»,3) = «стр»

В этой функции, как и в остальных, аргументы могут являться переменными. То есть:

str=«строка»
n=3
Left(str,n) = «стр»

Стоит также отметить, что пробелы в строке также являются символами и их нужно учитывать.

Right(string, length)

Right() — функция действует аналогично функции Left(), с той лишь разницей, что берет символы из строки не слева, а справа. Например:

Right(«строка», 3) = «ока»

Mid(string, start, length)

Mid() — эта функция, в отличие от Left() и Right(), имеет три аргумента. Первый аргумент — это строка, с которой будем работать. Второй аргумент — это номер позиции, откуда будем резать (т. е. отступ слева). И третий — это количество символов, которое необходимо взять, начиная с указанного во втором аргументе номера позиции (т. е. сколько требуется отрезать). Например:

Mid(«строка»,3,3) = «рок»

Содержание

  • Извлечение подстроки
  • Поиск позиции подстроки
  • Удаление пробелов из строки
  • Функции регистра VBA
  • Сравнение строк
  • Другие полезные строковые функции VBA

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

Извлечение подстроки

Функция левой строки VBA

Функция VBA Left позволяет извлекать подстроку из текста или строки, начиная с левой стороны. Синтаксис функции левой строки VBA:

Left (String, Num_of_characters), где:

  • Строка — исходный текст.
  • Num_of_charactersЦелое число, указывающее количество символов, извлекаемых из исходного текста, начиная с начала.

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

1234567891011 Sub UsingTheLeftStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = «AutomateExcel»valueTwo = Left (значениеOne, 4)MsgBox valueTwoКонец подписки

Результат:

Функция Left извлекла первые четыре буквы AutomateExcel, которые являются Auto.

Функция правой строки VBA

Правая функция VBA позволяет извлекать подстроку из текста или строки, начиная с правой стороны. Синтаксис функции правой строки VBA:

Справа (String, Num_of_characters), где:

  • Строка — исходный текст.
  • Num_of_charactersЦелое число, указывающее количество символов, извлекаемых из исходного текста, начиная с конца.

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

1234567891011 Подложка UsingTheRightStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = «AutomateExcel»valueTwo = Right (значениеOne, 4)MsgBox valueTwoКонец подписки

Результат:

Функция Right извлекла последние четыре буквы AutomateExcel, которые являются xcel.

Функция средней строки VBA

Функция VBA Mid позволяет извлекать подстроку из текста или строки, начиная с любой позиции в указанной вами строке. Синтаксис функции средней строки VBA:

Mid (String, Starting_position, [Num_of_characters]), где:

  • Строка — исходный текст.
  • Начальная_позиция — позиция в исходном тексте, из которой функция начнет извлекать.
  • Num_of_characters (По желанию)Целое число, указывающее количество символов, извлекаемых из исходного текста, начиная с начального_позиции. Если пусто, функция MID вернет все символы из начального_позиции.

В следующем коде показано, как использовать функцию Mid String для извлечения четырех символов, начиная со второй позиции или символа в строке:

1234567891011 Sub UsingTheMidStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = «AutomateExcel»valueTwo = Mid (значениеOne; 2; 4)MsgBox valueTwoКонец подписки

Результат выводится в msgbox:

Функция Mid извлекла четыре буквы AutomateExcel, начиная со второго символа / позиции / буквы, которые являются utom.

Поиск позиции подстроки

Строковая функция VBA Instr

Функция VBA Instr возвращает начальную позицию подстроки в другой строке. Эта функция чувствительна к регистру. Синтаксис строковой функции VBA Instr:

Instr ([Начало], Строка, Подстрока, [Сравнить]), где:

  • Начинать (По желанию) — указывает начальную позицию для функции для поиска. Если пусто, используется значение по умолчанию 1.
  • Строка — исходный текст.
  • ПодстрокаПодстрока в исходном тексте, положение которой вы хотите найти.
  • Сравнивать (По желанию)— Определяет тип сравнения, которое нужно сделать. Если пусто, используется двоичное сравнение.

-vbBinaryCompare — двоичное сравнение (верхний и нижний регистры считаются разными)
-vbTextCompare — Сравнение текста (верхний и нижний регистр считаются одинаковыми)
-vbDatabaseCompare — сравнение базы данных (этот параметр используется только в Microsoft Access и представляет собой сравнение на основе базы данных)

В следующем коде показано, как использовать функцию Instr String для определения первого вхождения подстроки «Th» в основной строке:

123456789101112 Sub UsingTheInstrStringFunction ()Тусклое значение: одно как строкаУменьшить положение подстроки как целое числоvalueOne = «Это текст»positionofSubstring = InStr (1, valueOne, «Th»)Отладка. Печать позиции подстрокиКонец подписки

Результат (выводится в окно Immediate Window):

Функция Instr вернула позицию первого вхождения подстроки «Th», которая равна 1. Обратите внимание, что эта функция включает пробелы в счетчике.

Строковая функция VBA InstrRev

Функция VBA InstrRev возвращает начальную позицию подстроки в другой строке, но начинает отсчет позиции с конца строки. Эта функция чувствительна к регистру. Синтаксис строковой функции VBA InstrRev:

InstrRev (String, Substring, [Start], [Compare]), где:

  • Строка — исходный текст.
  • ПодстрокаПодстрока в исходном тексте, положение которой вы хотите найти.
  • Начинать (По желанию) — указывает позицию для начала поиска. Если пусто, функция начинает поиск с последнего символа.
  • Сравнивать (По желанию)— Определяет тип сравнения, которое нужно сделать. Если пусто, используется двоичное сравнение.

-vbBinaryCompare — двоичное сравнение (верхний и нижний регистры считаются разными)
-vbTextCompare — Сравнение текста (верхний и нижний регистр считаются одинаковыми)
-vbDatabaseCompare — сравнение базы данных (этот параметр используется только в Microsoft Access и представляет собой сравнение на основе базы данных)

В следующем коде показано, как использовать функцию InstrRev String для определения первого вхождения подстроки «Th» в основной строке, начиная с конца строки:

1234567891011 Sub UsingTheInstrRevStringFunction ()Тусклое значение: одно как строкаУменьшить положение подстроки как целое числоvalueOne = «Это текст»positionofSubstring = InStrRev (valueOne, «Th»)Отладка. Печать позиции подстрокиКонец подписки

Результат выводится в Немедленное окно:

Функция InstrRev вернула позицию первого вхождения подстроки «Th», но отсчет начинается с конца, равного 9. Обратите внимание, что эта функция включает пробелы в счетчике.

Удаление пробелов из строки

Строковая функция VBA LTrim

Функция VBA LTrim удаляет все начальные пробелы из текста или строки. Синтаксис строковой функции VBA LTrim:

LTrim (String) где:

  • Строка — исходный текст.

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

123456789101112 Sub UsingTheLTrimStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = «Это адрес веб-сайта https://easyexcel.net/excel/»valueTwo = LTrim (значениеOne)MsgBox valueOneMsgBox valueTwoКонец подписки

Результаты следующие:

Функция LTrim удалила начальные пробелы для valuetwo, которое показано во втором окне сообщения.

Строковая функция VBA RTrim

Функция VBA RTrim удаляет все конечные пробелы из текста или строки. Синтаксис строковой функции VBA RTrim:

RTrim (String) где:

  • Строка — исходный текст.

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

123456789101112 Sub UsingTheRTrimStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = «Это адрес веб-сайта https://easyexcel.net/excel/»valueTwo = RTrim (значениеOne)MsgBox valueOneMsgBox valueTwoКонец подписки

Полученные результаты:

Функция RTrim удалила конечные пробелы для valuetwo, которое показано во втором окне сообщения.

Функция строки обрезки VBA

Функция обрезки VBA удаляет все начальные и конечные пробелы из текста или строки. Синтаксис функции строки обрезки VBA:

Обрезать (Строка), где:

  • Строка — исходный текст.

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

123456789101112 Подпрограмма UsingTheTrimStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = «Это адрес веб-сайта https://easyexcel.net/excel/»valueTwo = Обрезать (значениеOne)MsgBox valueOneMsgBox valueTwoКонец подписки

Результат:

Функция обрезки удалила начальные и конечные пробелы для valuetwo, которое показано во втором окне сообщения.

Строковая функция VBA LCase

Функция VBA LCase преобразует буквы в тексте или строке в нижний регистр. Синтаксис строковой функции VBA LCase:

LCase (String) где:

  • Строка — исходный текст.

В следующем коде показано, как использовать строковую функцию LCase для преобразования всех букв в данной строке в нижний регистр:

1234567891011 Sub UsingTheLCaseStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = «ЭТО ПРОДУКТ»valueTwo = LCase (значениеOne)MsgBox valueTwoКонец подписки

Результат:

Функция LCase преобразовала все буквы в строке в нижний регистр.

Строковая функция VBA UCase

Функция VBA UCase преобразует буквы в тексте или строке в верхний регистр. Синтаксис строковой функции VBA UCase:

UCase (String) где:

  • Строка — исходный текст.

В следующем коде показано, как использовать функцию строки UCase для преобразования всех букв в данной строке в верхний регистр:

1234567891011 Sub UsingTheUCaseStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = «это продукт»valueTwo = UCase (значениеOne)MsgBox valueTwoКонец подписки

Результат:

Функция UCase преобразовала все буквы в строке в верхний регистр.

Функция VBA StrConv

Функция VBA StrConv может преобразовывать буквы в тексте или строке в верхний регистр, нижний регистр, правильный регистр или Unicode в зависимости от указанного вами типа преобразования. Синтаксис строковой функции VBA StrConv:

StrConv (String, Conversion, [LCID]) где:

  • Строка — исходный текст.
  • Конверсия — желаемый тип конверсии.
  • [LCID] (По желанию) —Необязательный параметр, указывающий LocaleID. Если пусто, используется системный LocaleID.

В следующем коде показано, как использовать функцию StrConv String для преобразования строки в соответствующий регистр:

1234567891011 Подпрограмма UsingTheStrConvStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = «это продукт»valueTwo = StrConv (значениеOne, vbProperCase)MsgBox valueTwoКонец подписки

Результат:

Вы указываете тип преобразования, которое хотите выполнить, используя параметр преобразования:

  • vbLowerCase преобразует все буквы в тексте в нижний регистр.
  • vbUpperCase преобразует все буквы в тексте в верхний регистр.
  • vbProperCase преобразует первую букву каждого слова в тексте в верхний регистр, а все остальные буквы остаются в нижнем регистре.
  • vbUnicode преобразует строку в Unicode.
  • vbFromUnicode преобразует строку из юникода в кодовую страницу системы по умолчанию.

Сравнение строк

Функция VBA StrComp

Строковая функция VBA StrComp позволяет сравнивать две строки. Функция возвращает:

  • 0, если две строки совпадают
  • -1, если строка1 меньше строки2
  • 1, если строка1 больше строки2
  • Нулевое значение, если одна из строк была Null

В следующем коде показано, как использовать функцию StrComp для сравнения двух строк:

123456789101112 Sub UsingTheStrCompStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаУменьшить результат сравнения как целое числоvalueOne = «AutomateExcel»valueTwo = «AutomateExcel»resultofComparison = StrComp (значениеOne, значениеTwo)Отладка. Распечатать результат сравненияКонец подписки

Результат:

Функция StrComp нашла точное совпадение между двумя строками и вернула 0.

Оператор Like VBA

Оператор Like VBA позволяет сравнить текст или строку с шаблоном и посмотреть, есть ли совпадение. Обычно оператор Like используется вместе с подстановочными знаками. В следующем коде показано, как использовать оператор Like:

123456789101112 Sub UsingTheLikeOperatorInVBA ()Тусклое значение: одно как строкаvalueOne = «Давайте посмотрим на результат»Если valueOne Like «* view *» ТогдаMsgBox «Есть совпадение, эта строка содержит слово view»ЕщеMsgBox «Совпадений не найдено»Конец, еслиКонец подписки

Результат:

Подстановочные знаки, которые вы можете использовать с оператором Like для поиска совпадений с образцом, включают:

  • ? что соответствует одиночному символу
  • # что соответствует одной цифре
  • * что соответствует нулю или более символов

В следующем коде показано, как использовать оператор Like и оператор? подстановочный знак, соответствующий шаблону в вашем коде:

123456789101112 Sub UsingTheLikeOperatorWithAWildcardInVBA ()Тусклое значение: одно как строкаvalueOne = «The»Если valueOne Like «?? e» ТогдаMsgBox «Есть совпадение, найден соответствующий шаблон»ЕщеMsgBox «Совпадений не найдено»Конец, еслиКонец подписки

Полученный результат:

Другие полезные строковые функции VBA

Функция замены строки VBA

Функция замены VBA заменяет набор символов в строке другим набором символов. Синтаксис функции замены строки VBA:

Заменить (Строка, Найти, Заменить, [Начало], [Счетчик], [Сравнить]), где:

  • Строка — исходный текст.
  • Найти — подстрока для поиска в исходном тексте.
  • Заменить — подстрока, на которую нужно заменить подстроку поиска.
  • Начинать (По желанию)— Позиция для начала поиска из исходного текста. Если пусто, используется значение 1, и функция начинается с позиции первого символа.
  • Считать (По желанию)— Количество появлений заменяемой подстроки «Найти» в исходном тексте. Если пусто, заменяются все вхождения подстроки «Найти».
  • Сравнивать (По желанию)— Определяет тип сравнения, которое нужно сделать. Если пусто, используется двоичное сравнение.

    -vbBinaryCompare — двоичное сравнение
    -vbTextCompare — Сравнение текста
    -vbDatabaseCompare — сравнение базы данных (этот параметр используется только в Microsoft Access и представляет собой сравнение на основе базы данных).

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

1234567891011 Подпрограмма UsingTheReplaceStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = «ProductABC»valueTwo = Replace (valueOne, «ABC», «XYZ»)MsgBox valueTwoКонец подписки

Результат:

Функция замены нашла подстроку ABC в ProductABC и заменила ее подстрокой XYZ.

Функция VBA StrReverse

Функция VBA StrReverse меняет местами символы в заданном тексте или строке. Синтаксис строковой функции VBA StrReverse:

StrReverse (String) где:

  • Строка — исходный текст.

В следующем коде показано, как использовать функцию VBA StrReverse для изменения символов в строке Product:

1234567891011 Подпрограмма UsingTheStrReverseStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = «Продукт»valueTwo = StrReverse (значениеOne)MsgBox valueTwoКонец подписки

Результат:

Строковая функция VBA Len

Функция VBA Len возвращает количество символов в текстовой строке. Синтаксис строковой функции VBA Len String:

Len (String) где:

  • Строка — исходный текст.

В следующем коде показано, как использовать функцию Len String для определения длины строки AutomateExcel:

1234567891011 Sub UsingTheLenFunction ()Тусклое значение: одно как строкаDim stringLength As IntegervalueOne = «AutomateExcel»stringLength = Len (значениеOne)Debug.Print stringLengthКонец подписки

Результат:

Функция Len подсчитала все символы в тексте AutomateExcel, который состоит из 13 букв.

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Как объединить csv файлы в один excel
  • Как обрезать страницу excel
  • Как объединить 3 строки в одну в таблице word
  • Как обрезать ссылку в excel
  • Как объеденить ячейку в excel

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии