Excel vba удалить до символа
В этой статье разберем работу со строками в VBA на примерах функций InStr, LCASE, UCase, Left, Right, Mid, LTrim, RTrim, Trim, Len, Replace, Space, StrComp, String, StrReverse.
Строки - это последовательность символов, которая может состоять либо из алфавитов, цифр, специальных символов, либо из всех них. Переменная называется строкой, если она заключена в двойные кавычки "".
Синтаксис
Примеры
Строковые функции
Существуют предопределенные функции VBA String, которые помогают разработчикам эффективно работать со строками. Ниже приведены методы String, поддерживаемые в VBA. Пожалуйста, нажмите на каждый из методов, чтобы знать подробно.
Название функции и описание
InStr
Функция InStr возвращает первое вхождение одной строки в другую строку. Поиск происходит слева направо.
Синтаксис
Параметр Описание
- Пуск - необязательный параметр. Указывает начальную позицию для поиска. Поиск начинается с первой позиции слева направо.
- String1 - требуемый параметр. Строка для поиска.
- String2 - требуемый параметр. Строка, по которой выполняется поиск String1.
- Compare - Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
- 0 = vbBinaryCompare - выполняет двоичное сравнение (по умолчанию)
- 1 = vbTextCompare - выполняет сравнение текста
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1 : 6
Line 2 : 0
Line 3 : 8
Line 4 : 9
Line 5 : 2
Line 6 : 16
Line 7 : 11
Возвращает первое вхождение указанной подстроки. Поиск происходит слева направо.
Функция InStrRev возвращает первое вхождение одной строки в другую строку. Поиск происходит справа налево.
Синтаксис
Параметр Описание
- String1 - требуемый параметр. Строка для поиска.
- String2 - требуемый параметр. Строка, по которой выполняется поиск String1.
- Пуск - необязательный параметр. Указывает начальную позицию для поиска. Поиск начинается с первой позиции справа налево.
- Compare - Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
- 0 = vbBinaryCompare - выполняет двоичное сравнение (по умолчанию)
- 1 = vbTextCompare - выполняет сравнение текста
пример
Добавьте кнопку и установите следующую функцию.
После выполнения вышеуказанного скрипта он производит следующий результат.
Line 1 : 6
Line 2 : 6
Line 3 : 8
Line 4 : 0
Line 5 : 2
Line 6 : 2
Line 7 : 0
Возвращает первое вхождение указанной подстроки. Поиск происходит справа налево.
LCASE
Функция LCase возвращает строку после преобразования введенной строки в строчные буквы.
Синтаксис
пример
Добавьте кнопку и поместите следующую функцию внутри нее.
После выполнения вышеуказанного скрипта он производит следующий вывод.
Line 1 : microsoft vbscript
Line 2 : ms vbscript
Line 3 : microsoft
Возвращает нижний регистр указанной строки.
UCase
Функция UCase возвращает строку после преобразования введенной строки в буквы буквы UPPER.
Синтаксис
пример
Добавьте кнопку и поместите следующую функцию внутри нее.
После выполнения вышеуказанного скрипта он производит следующий вывод.
Line 1 : MICROSOFT VBSCRIPT
Line 2 : MS VBSCRIPT
Line 3 : MICROSOFT
Возвращает верхний регистр указанной строки.
Функция Left возвращает указанное количество символов с левой стороны данной входной строки.
Синтаксис
Параметр Описание
- String - обязательный параметр. Строка ввода, из которой указанное число символов должно быть возвращено с левой стороны.
- Длина - требуемый параметр. Целое число, определяющее количество возвращаемых символов.
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1 : Mi
Line 2 : MS VB
Line 3 : microsoft
Возвращает определенное количество символов с левой стороны строки.
Right
Функция Right возвращает указанное количество символов с правой стороны данной входной строки.
Синтаксис
Параметр Описание
- String - обязательный параметр. Строка ввода, из которой указанное число символов должно быть возвращено с правой стороны.
- Длина - требуемый параметр. Целое число, которое задает количество возвращаемых символов.
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1 : pt
Line 2 : CRIPT
Line 3 : microsoft
Возвращает определенное количество символов с правой стороны строки.
Mid функция возвращает указанное количество символов из заданной входной строки.
Синтаксис
Параметр Описание
- String - обязательный параметр. Строка ввода, из которой задано количество символов, которые нужно вернуть.
- Начало - требуемый параметр. Целое число, определяющее начальную позицию строки.
- Длина - необязательный параметр. Целое число, определяющее количество возвращаемых символов.
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1 : icrosoft VBScript
Line 2 : icros
Line 3 : osoft V
Возвращает определенное количество символов из строки на основе указанных параметров.
LTrim
Функция Ltrim удаляет пробелы с левой стороны строки.
Синтаксис
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете функцию, она производит следующий вывод.
After Ltrim : Microsoft VBScript
Возвращает строку после удаления пробелов в левой части указанной строки.
RTrim
Функция Rtrim удаляет пробелы с правой стороны строки.
Синтаксис
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
After Rtrim : Microsoft VBScript
Возвращает строку после удаления пробелов в правой части указанной строки.
Функция Trim удаляет как ведущее, так и конечное пустое пространство данной входной строки.
Синтаксис
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
After trim : Microsoft VBScript
Возвращает строковое значение после удаления как верхнего, так и конечного пробелов.
Функция Len возвращает длину данной входной строки, включая пробелы.
Синтаксис
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Length of var1 is : 18
Length of var2 is : 36
Возвращает длину данной строки.
Replace
Функция Replace заменяет указанную часть строки на определенную строку, указанное количество раз.
Синтаксис
Параметр Описание
- String - обязательный параметр. Строка ввода, которую нужно искать для замены.
- Find - требуемый параметр. Часть строки, которая будет заменена.
- Replacewith - обязательный параметр. Строка замены, которая будет заменена на параметр find.
- Start - необязательный параметр. Задает начальную позицию, из которой нужно искать и заменять строку. Значение по умолчанию - 1.
- Count - необязательный параметр. Указывает количество раз, которое должна выполняться замена.
- Compare - Необязательный параметр. Указывает метод сравнения, который будет использоваться. Значение по умолчанию - 0.
- 0 = vbBinaryCompare - выполняет двоичное сравнение
- 1 = vbTextCompare - выполняет текстовое сравнение
пример
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Возвращает строку после замены строки другой строкой.
Space
Функция Space заполняет строку конкретным количеством пробелов.
Синтаксис
Параметр Описание
Номер - требуемый параметр. Количество пробелов, которые мы хотим добавить к данной строке.
пример
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Заполняет строку указанным количеством пробелов.
StrComp
Функция StrComp возвращает целочисленное значение после сравнения двух заданных строк. Он может возвращать любое из трех значений -1, 0 или 1 на основе входных строк для сравнения.
- Если String1 меньше String2, то StrComp возвращает -1
- Если String1 равно String2, то StrComp возвращает 0
- Если String1 больше String2, то StrComp возвращает 1
Синтаксис
Параметр Описание
- String1 - требуемый параметр. Первое строковое выражение.
- String2 - требуемый параметр. Второе строковое выражение.
- Compare - Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
- 0 = vbBinaryCompare - выполняет двоичное сравнение (по умолчанию)
- 1 = vbTextCompare - выполняет сравнение текста
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1 :0
Line 2 :1
Line 3 :1
Line 4 :0
Line 5 :1
Возвращает целочисленное значение после сравнения двух указанных строк.
String
Функция String заполняет строку указанным символом для указанного количества раз.
Синтаксис
Параметр Описание
- Номер - требуемый параметр. Целочисленное значение, которое будет повторяться в течение определенного количества раз против параметра символа.
- Символ - требуемый параметр. Значение символа, которое должно повторяться определенное количество раз.
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1 :$$$
Line 2 :****
Line 3 :ddddd
Line 4 :AAAAAA
Возвращает строку с указанным символом для указанного количества раз.
StrReverse
Функция StrReverse меняет указанную строку.
Синтаксис
пример
Добавьте кнопку и добавьте следующую функцию.
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Line 1 : TPIRCSBV
Line 2 : tpircSBV tsriF yM
Line 3 : 54.321
Возвращает строку после изменения последовательности символов данной строки.
Эта функция извлекает левую часть строки с заданным количеством символов.
Синтаксис функции Left:
Left(строка, длина)
- строка — обязательный аргумент: строковое выражение, из значения которого вырезается левая часть;
- длина — обязательный аргумент: числовое выражение, указывающее количество извлекаемых символов.
Если аргумент «длина» равен нулю, возвращается пустая строка. Если аргумент «длина» равен или больше длины строки, возвращается строка полностью.
Функция Mid
Эта функция извлекает часть строки с заданным количеством символов, начиная с указанного символа (по номеру).
Синтаксис функции Mid:
Mid(строка, начало, [длина])
- строка — обязательный аргумент: строковое выражение, из значения которого вырезается часть строки;
- начало — обязательный аргумент: числовое выражение, указывающее положение символа в строке, с которого начинается извлекаемая часть;
- длина — необязательный аргумент: числовое выражение, указывающее количество вырезаемых символов.
Если аргумент «начало» больше, чем количество символов в строке, функция Mid возвращает пустую строку. Если аргумент «длина» опущен или его значение превышает количество символов в строке, начиная с начального, возвращаются все символы от начальной позиции до конца строки.
Функция Right
Эта функция извлекает правую часть строки с заданным количеством символов.
Синтаксис функции Right:
Right(строка, длина)
- строка — обязательный аргумент: строковое выражение, из значения которого вырезается правая часть;
- длина — обязательный аргумент: числовое выражение, указывающее количество извлекаемых символов.
Если аргумент «длина» равен нулю, возвращается пустая строка. Если аргумент «длина» равен или больше длины строки, возвращается строка полностью.
Пример
В этом примере будем использовать все три представленные выше функции для извлечения из ФИО его составных частей. Для этого запишем в ячейку «A1» строку «Иванов Сидор Петрович», из которой вырежем отдельные компоненты и запишем их в ячейки «A2:A4».
в следующей таблице перечислены функции, которые Visual Basic предоставляет в Microsoft.VisualBasic.Strings классе для поиска и работы со строками. их можно рассматривать как Visual Basic встроенных функций, то есть нет необходимости вызывать их как явные члены класса, как показано в примерах. Дополнительные методы и в некоторых случаях дополняют методы, доступны в System.String классе.
Можно использовать инструкцию Option Compare , чтобы задать, сравниваются ли строки с использованием порядка сортировки текста без учета регистра, определенного языковым стандартом системы ( ) или внутренними двоичными представлениями символов ( Binary ). Метод сравнения текста по умолчанию — Binary .
Пример: Укасе
В данном примере функция UCase используется для возврата строки в верхнем регистре.
Пример: LTrim
В данном примере функция LTrim используется, чтобы убрать пробелы в начале, а функция RTrim — чтобы убрать пробелы в конце строковой переменной. Функция Trim в примере используется для удаления обоих типов пробелов.
Пример: mid
В этом примере функция используется Mid для возврата указанного числа символов из строки.
Пример: len
В данном примере Len используется для возврата числа знаков в строке.
Пример: InStr
В данном примере функция InStr используется для возврата позиции первого вхождения одной строки в другую.
Пример: Format
В данном примере показаны различные способы использования функции Format для форматирования значений с применением как форматов String , так и определенных пользователем форматов. Фактическое отображение системой разделителя даты ( / ), разделителя времени ( : и индикаторов AM/PM ( t и tt ) зависит от региональных параметров, применяемых кодом. При отображении времени и даты в среде разработки используется короткий формат времени и даты региональных установок кода.
Для языков, использующих 24-часовой формат, индикаторы AM/PM ( t и tt ) не отображаются.
Возвращает значение типа Variant (String), содержащее указанное число символов строки.
Синтаксис
Синтаксис функции Mid состоит из следующих именованных аргументов:
Часть | Описание |
---|---|
строка | Обязательный аргумент. Строковое выражение, из которого возвращаются символы. Если строка содержит значение NULL, возвращается NULL. |
начало | Обязательный аргумент. Long. Позиция символа в строке, с которой начинается забираемая часть. Если значение аргумента начало больше, чем число символов в строке, функция Mid возвращает строку нулевой длины (""). |
длина | Необязательный аргумент. Variant (Long). Число возвращаемых символов. Если не указано или если меньше, чем символов длины в тексте (включая символ в начале), возвращаются все символы от начальной позиции до конца строки. |
Примечания
Чтобы определить число символов в строке, используйте функцию Len.
Используйте функцию MidB для работы с содержащимися в строке байтами, например в языках с двухбайтовыми кодировками (DBCS). Вместо указания числа символов аргументы задают число байтов. Образец кода с использованием функции MidB приведен во втором примере.
Пример
В первом примере с помощью функции Mid возвращается указанное количество знаков строки.
Во втором примере с использованием функции MidB и определяемой пользователем функции (MidMbcs) также возвращаются знаки из строки. Отличие от первого примера состоит в том, что исходная строка представляет собой строку ANSI и ее длина выражена в байтах.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Необходимо в определенной ячейке (A13) удалить текст до символа "№" и следующего за ним пробела
Текст в ячейке: Заявка № 111; Заявки № 112-113
Через формулу получилось -
Но нужно сделать через макрос
Необходимо в определенной ячейке (A13) удалить текст до символа "№" и следующего за ним пробела
Текст в ячейке: Заявка № 111; Заявки № 112-113
Через формулу получилось -
Но нужно сделать через макрос bosse-sl
Но нужно сделать через макрос Автор - bosse-sl
Дата добавления - 14.02.2015 в 19:20
bosse-sl, можно и через макрос , только файлик приложите, в котором играться, а то модераторы будут недовольны (впрочем, я тоже)
bosse-sl, можно и через макрос , только файлик приложите, в котором играться, а то модераторы будут недовольны (впрочем, я тоже) buchlotnik
Вам нужен макрос для обработки ОДНОЙ ЯЧЕЙКИ?!
Тут и формулы-то много, вручную гораздо быстрее сделать чем ее писать.
Вам нужен макрос для обработки ОДНОЙ ЯЧЕЙКИ?!
Тут и формулы-то много, вручную гораздо быстрее сделать чем ее писать. Serge_007
Вам нужен макрос для обработки ОДНОЙ ЯЧЕЙКИ?!
Тут и формулы-то много, вручную гораздо быстрее сделать чем ее писать. Автор - Serge_007
Дата добавления - 14.02.2015 в 19:34
Простите Сергей.
Для одного раза сделал бы, но это будет частью другого макроса и будет повторяться по несколько раз (десятков раз) в день.
Заранее спасибо
Простите Сергей.
Для одного раза сделал бы, но это будет частью другого макроса и будет повторяться по несколько раз (десятков раз) в день.
Заранее спасибо bosse-sl
Собственно, ПОИСК = InStr, ПСТР я бы заменил на ПРАВСИМВ, т.е. Right. Для передачи из A13 в B13 код такой:[vba]
Sub trimmer()
Dim i%
i = InStr(1, [a13].Value, "№", vbTextCompare) + 2
[b13].Value = Right([a13].Value, Len([a13].Value) - i + 1)
End Sub
Собственно, ПОИСК = InStr, ПСТР я бы заменил на ПРАВСИМВ, т.е. Right. Для передачи из A13 в B13 код такой:[vba]
Sub trimmer()
Dim i%
i = InStr(1, [a13].Value, "№", vbTextCompare) + 2
[b13].Value = Right([a13].Value, Len([a13].Value) - i + 1)
End Sub
Sub trimmer()
Dim i%
i = InStr(1, [a13].Value, "№", vbTextCompare) + 2
[b13].Value = Right([a13].Value, Len([a13].Value) - i + 1)
End Sub
Спасибо
buchlotnik почему то Ваш работает
А вот Сергея ругается Type mismatch подозреваю что на WorksheetFunction пробовал в другом месте, у меня Excel 2003 может из-за этого, но всё-равно спасибо
Спасибо
buchlotnik почему то Ваш работает
А вот Сергея ругается Type mismatch подозреваю что на WorksheetFunction пробовал в другом месте, у меня Excel 2003 может из-за этого, но всё-равно спасибо bosse-sl
Читайте также: