Строковые функции 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), т.е. сверх указанного числа
‘Примечание: этот код не гарантирует единый номер. пробелов, но удаляет ТОЛЬКО лишние пробелы
‘Обеспечивает единый номер. последовательных пробелов в строке, где присутствуют существующие пробелы
‘убедитесь, что единообразный нет. последовательных пробелов в строке, где присутствуют существующие пробелы
‘Примечание: этот код гарантирует единый номер. пробелов, где также присутствуют ведущие и конечные пробелы
Функция REPLACE (VBA)
Функция замены vba используется для возврата строки, в которой указанная подстрока заменяется указанное количество раз другой указанной подстрокой. Синтаксис: Replace (выражение, найти, заменить, начать, подсчитать, сравнить) . Необходимо указать аргументы выражения, найти и заменить, в то время как аргументы start, count и compare необязательны.
Выражение аргумент — это строка, в которой заменяется определенная подстрока. Для строки выражения нулевой длины возвращается строка нулевой длины, а для выражения Null функция выдаст ошибку. Аргумент find указывает подстроку, которую необходимо заменить. Если найти подстроку нулевой длины, то возвращается копия выражения. Аргумент replace указывает ту «другую подстроку», которая заменяет (т. Е. Подстроку замены). Подстрока замены нулевой длины приводит к удалению всех вхождений find из выражения. Аргумент start указывает позицию (т.е. номер символа) в выражении, с которой вы хотите начать поиск подстроки ‘find’. Если опущено, по умолчанию будет 1 (т.е. поиск начнется с позиции первого символа). Строка, возвращаемая функцией Replace, начинается с этой начальной позиции до последнего символа строки выражения после замены (замен). Если указать начальную позицию, превышающую длину выражения, будет возвращена строка нулевой длины. Аргумент count определяет количество замен подстроки, которое вы хотите сделать. Если не указывать это значение, по умолчанию будет установлено значение -1, что сделает все возможные замены. Указание нуля для счетчика не приведет к замене и вернет копию выражения. Аргумент compare определяет тип сравнения, который следует использовать для оценки подстрок — здесь можно указать числовое значение или константу, как подробно описано ниже.
Вы можете указать следующие аргументы для аргумента сравнения : vbUseCompareOption (значение: -1) выполняет сравнение с использованием настройки параметра Вариант Сравнить заявление. vbBinaryCompare (значение: 0) выполняет двоичное сравнение — сравнение строк на основе двоичного порядка сортировки (в Microsoft Windows кодовая страница определяет порядок сортировки — при этом ANSI 1252 используется для английского и многих других языков. Европейские языки), в котором символы верхнего регистра всегда меньше символов нижнего регистра -> A vbTextCompare (значение: 1) выполняет текстовое сравнение — сравнения строк, которые не основаны на порядке сортировки текста с учетом регистра -> (A = a) vbDatabaseCompare (значение: 2) выполняет сравнение на основе информации в вашей базе данных (может использоваться только в Microsoft Access). Если вы не укажете аргумент сравнения, сравнение будет выполнено на основе определенного оператора Option Compare. Оператор Option Compare (например, Option Compare Binary или Option Compare Text) может использоваться для установки метода сравнения — вы должны указать «Option Compare Binary» или «Option Compare Text» на уровне модуля перед любой процедурой. Если оператор Option Compare не указан, по умолчанию используется двоичный метод сравнения текста.
Пример — использование функции замены vba.
Sub Replace_vbaFunc ()
‘с помощью функции замены vba
Dim str As String, strFind As String, strReplace As String
‘найти все вхождения «s» для замены:
strFind = «s»
‘ установить заменяемую строку как нулевую длину:
strReplace = «»
‘———————— —-
str = «Она продавала морские ракушки!»
‘возвращает 27:
MsgBox Len (str)
‘возвращает строку после удаления всех вхождений’ s ‘- «Она ждала ад!». Обратите внимание, что заглавная буква «S» не заменяется.
str = Replace (str, strFind, strReplace)
MsgBox str
‘ возвращает 22:
MsgBox Len (str)
‘————— ————-
str = «Она продавала морские ракушки!»
‘возвращает 27:
MsgBox Len (str)
‘возвращает строку после удаления всех вхождений’ s ‘- «he wa ea ea hell!».
‘ Обратите внимание, что заглавная буква ‘S’ также заменяется, потому что текстовое сравнение было выполнено путем установки значения аргумента сравнения на vbTextCompare (значение: 1).
str = Replace (str, strFind, strReplace,, , 1)
MsgBox str
‘возвращает 21:
MsgBox Len (str)
‘—————————
str = «Она продавал морские ракушки! «
‘возвращает 27:
MsgBox Len (str)
‘ удаляя все вхождения ‘s’ из начальной позиции 8 — возвращает «elling ea hell!». Обратите внимание, что номер символа 8 является пробелом, и он также возвращается.
‘строка, возвращаемая функцией Replace, начинается с этой начальной позиции до последнего символа строки выражения.
str = Replace (str, strFind, strReplace, 8)
MsgBox str
‘возвращает 16:
MsgBox Len (str)
‘———————- ——
str = «Она продавала морские ракушки!»
‘возвращает 27:
MsgBox Len (str )
‘Если указать начальную позицию, превышающую длину выражения, будет возвращена строка нулевой длины.
str = Replace (str, strFind, strReplace, 28)
‘возвращает строку нулевой длины:
MsgBox str
‘ возвращает 0:
MsgBox Len (str)
‘———————- ——
str = «Она продавала морские ракушки!»
‘возвращает 27:
MsgBox Len (str )
‘Аргумент count указывает количество замен подстроки, которое вы хотите сделать. Если не указать это, по умолчанию будет установлено значение -1, что сделает все возможные замены.
‘, указав начальную позицию 8 и счетчик 2:
str = Replace (str, strFind, strReplace, 8, 2)
‘возвращает «elling ea shells!» после удаления’ s ‘дважды с начальной позиции 8.
MsgBox str
‘возвращает 18:
MsgBox Len (str)
‘ ——— ——————-
End Sub
Пример — манипулирование строками в Excel VBA — удаление числовых значений, удаление/добавление пробелов Пробелы, заглавные буквы.
Чтобы загрузить файл Excel с живым кодом, щелкните здесь.
‘1. удаляет числа из текстовой строки;
‘2. удаляет начальные, конечные и промежуточные пробелы (оставляет один пробел между словами);
‘3. добавляет пробел (если его нет) после каждого восклицательного знака, запятой, точки и вопросительного знака;
‘4. делает заглавными первую букву строки и первую букву слова после каждого восклицательного знака, точки и вопросительного знака;
‘манипулировать строкой
Пример. Замена всех вхождений подстроки в строковом выражении другой подстрокой с помощью функции замены vba.
Чтобы загрузить файл Excel с живым кодом, щелкните здесь.
‘Заменяет все вхождения подстроки ( vFind) в строке (var) с другой подстрокой (vReplace) — с помощью функции vba Replace.
‘эта процедура вызывает функцию Replace_Str1 и передает четыре аргумента строки (var), в которой указана конкретная подстрока (vFind ) заменяется другой подстрокой (vReplace) и типом сравнения (iOption), используемым для оценки подстрок
Функции InStr и InStrRev (VBA)
Функция InStr возвращает позицию (номер символа), в которой строка впервые встречается внутри другой строки. Синтаксис: InStr (start, string, substring, compare) . Необходимо указать аргументы строки и подстроки, а аргументы start и compare необязательны.
Аргумент start указывает позицию (т. е. номер символа) в строке, с которой вы хотите начать поиск подстроки. Необходимо указать аргумент start, если аргумент сравнения должно быть указано. Если не указано, по умолчанию будет равно 1 (т. е. поиск начнется с позиции первого символа). sition, длина которого больше длины строки, вернет 0 (ноль), и если start содержит Null, произойдет ошибка. Аргумент string — это строковое выражение, в котором выполняется поиск подстроки. Функция возвращает 0, если строка имеет нулевую длину, и возвращает Null, если строка имеет значение Null. Аргумент substring — это строковое выражение, поиск по которому выполняется в строке, позиция которого будет возвращена функцией. Функция возвращает 0, если подстрока не найдена, возвращает начальное значение, если строка имеет нулевую длину, и возвращает Null, если подстрока равна Null. Аргумент compare указывает тип сравнения, который следует использовать для оценки строк — здесь можно указать числовое значение или константу, как подробно описано ниже..
Вы можете указать следующие аргументы для аргумента сравнения : vbUseCompareOption (value : -1) выполняет сравнение, используя настройку оператора Option Compare. vbBinaryCompare (значение: 0) выполняет двоичное сравнение — сравнение строк на основе двоичного порядка сортировки (в Microsoft Windows кодовая страница определяет порядок сортировки — при этом ANSI 1252 используется для английского и многих других языков. Европейские языки), в котором символы верхнего регистра всегда меньше символов нижнего регистра -> A vbTextCompare (значение: 1) выполняет текстовое сравнение — сравнения строк, которые не основаны на порядке сортировки текста с учетом регистра -> (A = a) vbDatabaseCompare (значение: 2) выполняет сравнение на основе информации в вашей базе данных (может использоваться только в Microsoft Access). Если вы не укажете аргумент сравнения, сравнение будет выполнено на основе определенного оператора Option Compare. Оператор Option Compare (например, Option Compare Binary или Option Compare Text) может использоваться для установки метода сравнения — вы должны указать «Option Compare Binary» или «Option Compare Text» на уровне модуля перед любой процедурой. Если оператор сравнения параметров не указан, по умолчанию используется двоичный метод сравнения текста.
Функция InStrRev возвращает позицию (номер символа), в которой строка впервые встречается в другой строке, начиная с конца этой другой строки. Синтаксис: InStrRev (строка, подстрока, начало, сравнение) . Используйте функцию InStrRev вместо InStr для поиска в обратном направлении. Необходимо указать аргументы строки и подстроки, а аргументы запуска и сравнения являются необязательными. Если start не указан, используется -1, что означает, что поиск начнется с позиции последнего символа. Все остальные объяснения синтаксиса остаются такими же, как в функции InStr.
Пример — использование функции InStr.
Sub InStrFunc ()
‘с использованием функции InStr
Dim str1 As String, str2 As String
‘———- ——-
str1 = «она продает морские ракушки»
str2 = «e»
‘возвращает 3 :
MsgBox InStr (str1, str2)
‘————— —
str1 = «она продает морские ракушки»
str2 = «e»
‘возвращает 6:
MsgBox InStr (4, str1, str2)
‘—————- —
str1 = «она продает морские ракушки»
str2 = «e»
‘возвращает 0, потому что начальное значение (24) больше длины str1 (20):
MsgBox InStr (24, str1, str2)
‘— —————
str1 = «»
str2 = «e»
‘возвращает 0, потому что str1 имеет нулевую длину:
MsgBox InStr (str1, str2)
‘ —— ————
str1 = «она продает морские ракушки»
str2 = «f»
‘возвращает 0, потому что str2 не найден:
MsgBox InStr (str1, str2)
‘——————
Dim str3 как вариант
str1 = «она продает морские ракушки»
str3 = Null
‘возвращает 1, указывая на подтип Null — поскольку str3 имеет значение Null:
MsgBox VarType (InStr (str1, str3))
‘——————
str1 = «Она продает морские ракушки»
str2 = «s»
‘возвращает 9 — тип сравнения текста по умолчанию Двоичный (с учетом регистра):
MsgBox InStr (2, str1, str2)
‘возвращает 5 — выполнение текстового сравнения, в котором тип сравнения не чувствителен к регистру:
MsgBox InStr (2, str1, str2, 1)
‘——————
End Sub
Пример. Замена всех вхождений подстроки в строковом выражении другой подстрокой с помощью функций InStr, Left & Mid.
Чтобы загрузить файл Excel с живым кодом, щелкните здесь.
‘Заменить все вхождения подстроки в строковом выражении другой подстрокой — с помощью функций InStr, Left & Mid.
‘ Заменяет все вхождения vFind в var на vReplace — с использованием функций InStr, Left & Mid.
‘При замене в этой процедуре учитывается регистр, т.е. если вы укажете заменять вхождения «a», то экземпляры «A» НЕ будут заменены.
‘Заменяет все вхождения vFind в var на vReplace — с использованием функций InStr, Left & Mid.
‘ Замена будет чувствительна к регистру в этой процедуре, т.е. если вы укажете заменять вхождения «a», то экземпляры «A» НЕ будут заменены.
Почему Len и VBA.Len возвращают разные результаты?
Когда я запускаю следующий макрос:
Sub try () Dim num As Integer num = 123 MsgBox Len (num) MsgBox VBA .Len (num) End Sub
Первый Msgbox
отображает 2
, а второй Msgbox
отображает 3
. Если я удалю первую строку с надписью Dim num As Integer
, оба MsgBoxes отобразят 3 код>.
Кто-нибудь может объяснить, почему?
Это связано со способом что VB хранит целые числа и как функция Len ()
обрабатывает аргументы, не являющиеся строками.
Когда тип данных, который не является строкой, передается в функцию Len ()
, она возвращает номинальное количество байтов, используемых для хранения данных (VB использует 2 байта для хранения целого числа). См. Документацию по функции Len
.
Функция Len ()
автоматически приведет к преобразованию переменной варианта (которая создается путем присвоения значения переменной без предварительного объявления его) в виде строки. Возврат не меняется из-за изменения распределения памяти (хотя и меняется; варианты требуют минимум 16 байтов дискового пространства). Поскольку неявно объявленная переменная на самом деле является вариантным типом, VB автоматически изменит ее тип в зависимости от ситуации. В этом случае Len ()
ожидает строку, поэтому VB делает переменную строкой.
Вы можете использовать Msgbox Len (Cstr (num ))
, чтобы преобразовать целочисленную переменную в строку перед ее передачей в функцию Len
, если вы намерены вернуть количество символов в вашем целочисленном значении..
2
Вы можете создать ваша собственная функция len:
Функция CountChar (ByVal Mystring As String) Тусклый алфавит как Variantalphabet = Array («A», «a», «B», «b», «C», «c», «D», «d», «E», «e», «F», «f», «G», «g», «H», «h», _ » I »,« i »,« J »,« j »,« K »,« k »,« L »,« l »,« M »,« m »,« N »,« n »,« O » , «o», «P», «p», «Q», «q», _ «R», «r», «S», «s», «T», «t», «U», «u», «V», «v», «W», «w», «X», «x», «Y», «y», «Z», «z», 0, 1, 2, 3 _, 4, 5, 6, 7, 8, 9) j = 0For i = 0 До 61 '//Найдите алфавит и числа, затем замените на "-" Выполните, пока InStr (Mystring, алфавит (i)) Mystring = Заменить (Mystring, алфавит (i), "-") j = j + 1 LoopNext iCountChar = jd = MsgBox (Mystring) Конечная функция
1