Строковые функции Excel VBA:
Строковые функции Excel VBA для поиска и замены текста с примерами: LEFT, RIGHT, MID, LEN, REPLACE, Функции InStr и InStrRev
———————————— ——————-
Содержание:
Функция LEFT (рабочий лист/VBA)
Функция RIGHT (рабочий лист/VBA)
Функция MID (рабочий лист/VBA)
Функция LEN (рабочий лист/VBA)
Функция REPLACE (рабочий лист)
Функция REPLACE (VBA)
InStr & Функции InStrRev (VBA)
——————————- ————————
В Excel vba String относится к последовательности смежных символов в кавычках, а именно. «Это строковое выражение в кавычках в vba». Эти символы буквально интерпретируются как символы в том смысле, что они представляют сами символы, а не их числовые значения. Строка может включать буквы, цифры, пробелы и знаки препинания. Строковое выражение может иметь в качестве своих элементов строку из смежных символов, функцию, возвращающую строку, строковую переменную, строковую константу или вариант строки. В этом разделе подробно обсуждается использование строковых функций Excel VBA для управления текстовыми строками с помощью кода vba. Также см. Связанную ссылку: Строковые функции Excel VBA: SPLIT, JOIN, CONCATENATE .
Функция LEFT (рабочий лист/VBA)
Функция Excel LEFT может использоваться как как функция рабочего листа, так и как Функция VBA. Функция LEFT возвращает указанное количество символов в текстовой строке, начиная с первого или крайнего левого символа. Используйте эту функцию для извлечения подстроки из левой части текстовой строки. Синтаксис: LEFT (текстовая_строка, символьные_числа) . Необходимо упомянуть аргумент text_string , который представляет собой текстовую строку, из которой вы хотите извлечь указанное количество символов. Аргумент char_numbers является необязательным (при использовании в качестве функции рабочего листа), он указывает количество символов, извлекаемых из текстовой строки. Значение char_numbers должно быть равно или больше нуля; если она больше, чем длина текстовой строки, функция LEFT вернет текстовую строку полностью; если опущено, по умолчанию будет 1. При использовании в качестве функции VBA необходимо указать оба аргумента, и если text_string содержит Null, функция также возвращает Null.
Функция ПРАВО (рабочий лист/VBA)
Функция Excel RIGHT может использоваться как функция рабочего листа, так и функция VBA. Функция RIGHT возвращает указанное количество символов в текстовой строке, начиная с последнего или самого правого символа. Используйте эту функцию для извлечения подстроки из правой части текстовой строки. Синтаксис: RIGHT (текст_строка, символьные_числа) . Необходимо упомянуть аргумент text_string , который представляет собой текстовую строку, из которой вы хотите извлечь указанное количество символов. Аргумент char_numbers является необязательным (при использовании в качестве функции рабочего листа), он указывает количество символов, извлекаемых из текстовой строки. Значение char_numbers должно быть равно или больше нуля; если она больше, чем длина текстовой строки, функция RIGHT вернет текстовую строку полностью; если опущено, по умолчанию будет равно 1. При использовании в качестве функции VBA необходимо указать оба аргумента, и если text_string содержит Null, функция также возвращает Null.
Функция MID (рабочий лист/VBA)
Функция Excel MID может использоваться как функция рабочего листа, так и функция VBA. Функция MID возвращает указанное количество символов в текстовой строке, начиная с указанной позиции (т. Е. Начиная с указанного номера символа). Используйте эту функцию для извлечения подстроки из любой части текстовой строки. Синтаксис: MID (текстовая_строка, начальное_число, символьные_числа) . Аргумент text_string — это текстовая строка, из которой вы хотите извлечь указанное количество символов. Аргумент start_number указывает номер символа, с которого следует начать извлечение подстроки, при этом первым символом в текстовой строке является start_number 1 и увеличивается вправо. Аргумент char_numbers указывает количество символов, извлекаемых из текстовой строки.
Если start_number больше, чем длина текстовой строки, возвращается пустая строка (нулевой длины); если он меньше, чем длина текстовой строки, но вместе с char_numbers (т.е. start_number PLUS char_numbers) он больше, чем длина текстовой строки, функция MID вернет текстовую строку полностью от позиции start_number до конца текстовой строки.
Использование функции MID как функции рабочего листа , если для char_numbers указано отрицательное значение, MID вернет #VALUE! значение ошибки; если start_number меньше 1, MID вернет #VALUE! значение ошибки. Все аргументы необходимо указать при использовании функции рабочего листа.
Использование функции MID в качестве функции VBA: Аргумент char_numbers является необязательным при использовании в качестве функции VBA, а если он опущен, функция вернет текстовую строку полностью от позиции start_number до конца текстовой строки. Все остальные аргументы необходимо указать при использовании в качестве функции vba. Если text_string содержит Null, функция также возвращает Null.
Функция LEN (рабочий лист/VBA)
Функция LEN в Excel может использоваться как как функция рабочего листа, так и как функция VBA. Функция LEN рабочего листа возвращает количество символов в текстовой строке. Используйте эту функцию, чтобы получить длину текстовой строки. Синтаксис: LEN (текстовая_строка) . Необходимо упомянуть аргумент text_string , который представляет собой текстовую строку, длину которой вы хотите получить в количестве символов. Обратите внимание, что пробелы также считаются символами. Функция LENB рабочего листа возвращает количество байтов, используемых для представления символов в текстовой строке — каждый символ считается 1 байтом, кроме случаев, когда язык DBCS [а именно. Японский, китайский (упрощенный), китайский (традиционный) и корейский] установлен в качестве языка по умолчанию, при этом символ считается как 2 байта. Синтаксис: LENB (текст_строка) .
Пока с использованием LEN как функция VBA — Синтаксис: Len (text_string) или Len (variable_name) — вы можете использовать текстовую строку или имя переменной, и функция вернет значение типа Long, представляющее количество символов, содержащихся в строке, или количество байтов, необходимых для хранения переменной. Использование функции vba Len для переменной типа вариант будет рассматривать переменную как строку и возвращать количество содержащихся в ней символов. Text_string или переменная, содержащая Null, также вернет Null. Функция vba Len возвращает количество символов в строке, где переменная имеет подтип String или Variant, а переменная имеет подтип numeric, функция возвращает количество байтов, используемых для хранения переменной.
Пример — использование функций Left, Right, Mid и Len в коде vba.
Sub Left_Right_Mid_Len ()
‘с использованием функций vba Left, Right, Mid & Len.
Dim str As String, strLeft As String, strRight As String, strMid As String
str = «Джеймс Бонд»
strLeft = Left (str, 7)
‘возвращает «Джеймс Б», то есть первые 7 символов (пробел считается отдельным символом).
MsgBox strLeft
strLeft = Left (str, 15)
‘возвращает «Джеймс Бонд», все символы в ячейке A1, потому что число 15, указанное в функции, превышает длину строки в 10 символов..
MsgBox strLeft
strRight = Right (str, 7)
‘возвращает «es Bond «, которые представляют собой последние 7 символов (пробел считается отдельным символом).
MsgBox strRight
strRight = Right (str, 15)
‘возвращает «Джеймс Бонд», все символы в ячейке A1, потому что число 15, указанное в функции, превышает длину строки в 10 символов.
MsgBox strRight
strMid = Mid (str, 2, 6)
‘Возвращает «ames B» . Начинается со второго символа т.е. «a», а затем указывает, что 6 символов должны быть возвращены, начиная с «a».
MsgBox strMid
strMid = Mid (str, 2, 15)
‘Возвращает «Эймс Бонд». Возвращает все символы, начиная со второго символа (позиция start_number) «a», поскольку указанные символы из 15 плюс начальное число 2 (то есть всего 17) превышают длину строки в 10 символов.
MsgBox strMid
strMid = Mid (str, 2)
‘Возвращает «Эймс Бонд». Возвращает все символы, начиная со второго символа (позиция start_number) «a», поскольку второй аргумент (char_numbers) опущен.
MsgBox strMid
strMid = Mid (str, 12, 2)
‘Возвращает пустую строку (нулевой длины), поскольку начальное число 12 превышает длину строки в 10 символов.
MsgBox strMid
‘Возвращает 10 — длину строки, измеряемую количеством символов.
MsgBox Len (str)
‘Возвращает 10 — длину строки, измеряемую ее количеством символов.
MsgBox Len ( «Джеймс Бонд»)
End Sub
Пример — Использование функции vba Len — типы переменных.
Sub Len_vbaFunc ()
‘с использованием функции vba Len — типы переменных
‘—————————
‘ в обоих случаях возвращает 3 — количество символов в строке:
MsgBox Len («bad»)
MsgBox Len («245»)
‘возвращает 10 — количество символов в строке, включая пробел:
MsgBox Len («James Bond»)
‘—————————
‘ переменная варианта типа обрабатывается как строка
Dim vVar As Variant
vVar = 245
‘возвращает 2, указывая переменную subtype Integer:
MsgBox VarType (vVar)
‘Возвращает 3, количество символов, содержащихся в переменной — функции Len обрабатывают вариантную переменную как строку:
MsgBox Len (vVar)
‘—————— ———-
‘переменная типа string
Dim strVar As String
strVar = » Джеймс Бонд «
‘возвращает 8, указывая подтип переменной String:
M sgBox VarType (strVar)
‘Возвращает 10, количество символов, содержащихся в переменной типа String:
MsgBox Len (strVar)
‘—————————
‘ переменная типа integer
Dim iVar As Integer
iVar = 245
‘Возвращает 2, количество байтов, используемых для хранения переменная:
MsgBox Len (iVar)
‘переменная типа long
Dim lVar As Long
lVar = 245
‘Возвращает 4, количество байтов, используемых для хранения переменной:
MsgBox Len (lVar)
‘переменная типа single
Dim sVar As Single
sVar = 245,567
‘Возвращает 4, количество байтов, используемых для хранения переменной:
MsgBox Len (sVar)
‘переменная типа double
Dim dVar As Double
dVar = 245.567
‘ возвращает 8 , количество байтов, используемых для хранения переменной:
MsgBox Len (dVar)
‘————— ————
End Sub
Пример — использование функций LEN и MID для определения символов, появляющихся в позициях нечетных номеров в текстовой строке.
Пример — использование функций LEFT, LEN и MID для возврата инициалов полного имени.
‘Использование функций LEFT, LEN и MID для возврата urn инициалы полного имени.
‘возвращать инициалы из текстовой строки, содержащей полное имя, состоящее из нескольких слов
‘ рассматривать строку, содержащую имя, отчество (имена) и фамилию, имеющие между пробелами — вернуть инициалы полного имени, где после каждого инициала ставится точка и пробел.
Функция REPLACE (рабочий лист)
Функция REPLACE на рабочем листе заменяет часть текстовой строки новой текстовой строкой на основе указанного количества символов и начиная с указанной позиции. Синтаксис: REPLACE (old_text, start_number, number_of_chars, new_text) . Необходимо указать все аргументы. old_text — это текстовая строка, в которой вы хотите заменить новый текст. Аргумент start_number — это позиция символа в old_text, который вы хотите заменить ( т.е. позиция первого символа, с которого замена должен начаться). Позиция — это номер символа, первый символ — это цифра 1 и увеличивается вправо. number_of_chars — это количество символов, которые будут заменены в old_text (на new_text). new_text — это текстовая строка, которая заменяет символы в old_text.
Пример — использование функции замены рабочего листа в коде vba для удаления пробелов, превышающих указанное число, в строке
‘с использованием функции замены рабочего листа в коде vba для удаления пробелов, превышающих указанное число, внутри string (str)
‘используйте этот код для сокращения нескольких пробелов в строке до указанного количества пробелов (iSpaces)
‘ этот код также может удалять ВСЕ пробелы в строке
‘этот код также может преобразовывать несколько пробелов в один пробел в строке, аналогично функции обрезки рабочего листа, за исключением того, что при использовании обрезки удаляются ВСЕ пробелы перед первым (непробельным) символом.
‘удаляет лишние последовательные пробелы в строке (str), т.е. сверх указанного числа
‘Примечание: этот код не гарантирует единый номер. пробелов, но удаляет ТОЛЬКО лишние пробелы
‘Обеспечивает единый номер. последовательных пробелов в строке, где присутствуют существующие пробелы
‘убедитесь, что единообразный нет. последовательных пробелов в строке, где присутствуют существующие пробелы
‘Примечание: этот код гарантирует единый номер. пробелов, г





