Функция InStrRev (Visual Basic для приложений)
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 2 мин
Возвращает положение вхождения одной строки в рамках другой, начиная с конца строки.
Синтаксис
InstrRev(stringcheck, stringmatch, [ start, [ compare ]])
Синтаксис функции InstrRev содержит следующие именованные аргументы:
Часть | Описание |
---|---|
stringcheck | Обязательно. Строковое выражение, поиск в котором выполняется. |
stringmatch | Обязательно. Представляет собой строковое выражение, которое требуется найти. |
start | Необязательно. Числовое выражение, которое задает начальную точку для поиска. Если этот параметр пропущен, используется значение «–1», означающее начало поиска с последней позиции символа. Если аргумент start содержит значение Null, возникает ошибка. |
compare | Необязательно. Представляет собой числовое значение, указывающее вид сравнения, которое выполняется при оценке подстрок. Если этот аргумент опущен, выполняется двоичное сравнение. Возможные значения см. в разделе «Параметры». |
Параметры
Аргумент compare может принимать следующие значения:
Константа | Значение | Описание |
---|---|---|
vbUseCompareOption | –1 | Выполняет сравнение, используя параметр оператора Option Compare. |
vbBinaryCompare | 0 | Выполняется двоичное сравнение. |
vbTextCompare | 1 | Выполняется текстовое сравнение. |
vbDatabaseCompare | 2 |
Возвращаемые значения
Функция InStrRev возвращает следующие значения:
Если | InStrRev возвращает |
---|---|
Длина аргумента stringcheck нулевая | 0 |
Значение аргумента stringcheck — Null | Null |
Длина аргумента stringmatch нулевая | start |
Значение аргумента stringmatch — Null | Null |
Аргумент stringmatch не найден | 0 |
Значение аргумента stringmatch найдено в аргументе stringcheck | Позиция найденного соответствия |
start > Len(stringcheck) | 0 |
Обратите внимание, что синтаксис для функции InstrRev отличается от синтаксиса, используемого для функции Instr.
InstrRev не обнаружит экземпляр stringmatch, если должность конечного знака stringmatch меньше или равна start.
См. также
- Функции (Visual Basic для приложений)
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Функция InStrRev
Access для Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Еще…Меньше
Возвращает позицию местоположения одной строки внутри другой в базе данных Access, причем поиск идет справа налево.
Синтаксис
InStrRev(stringcheck, stringmatch [, start[, compare]])
В синтаксисе функции InStrRev предусмотрены следующие аргументы.
Аргумент |
Описание |
stringcheck |
Обязательный аргумент. Представляет собой строковое выражение, в котором выполняется поиск. |
stringmatch |
Обязательный аргумент. Представляет собой строковое выражение, которое требуется найти. |
start |
Необязательный аргумент. Представляет собой числовое выражение, задающее начальную позицию для каждой операции поиска. Если этот параметр пропущен, используется значение «–1», означающее начало поиска с последней позиции символа. Если аргумент start содержит значение Null, возникает ошибка. |
compare |
Необязательный аргумент. Представляет собой числовое значение, указывающее вид сравнения, которое выполняется при оценке подстрок. Если этот аргумент опущен, выполняется двоичное сравнение. Возможные значения см. в разделе «Параметры». |
Параметры
Аргумент compare может принимать следующие значения.
Константа |
Значение |
Описание |
vbUseCompareOption |
–1 |
Выполняется сравнение с помощью параметра инструкции Option Compare. |
vbBinaryCompare |
0 |
Выполняется двоичное сравнение. |
vbTextCompare |
1 |
Выполняется текстовое сравнение. |
vbDatabaseCompare |
2 |
Только в Microsoft Office Access 2007. Выполняется сравнение на основе сведений из базы данных. |
Возвращаемые значения
Если |
Функцией InStrRev возвращается |
Длина аргумента stringcheck нулевая |
0 |
Значение аргумента stringcheck — Null |
Null |
Длина аргумента stringmatch нулевая |
start |
Значение аргумента stringmatch — Null |
Null |
Аргумент stringmatch не найден |
0 |
Значение аргумента stringmatch найдено в аргументе stringcheck |
Позиция найденного соответствия |
Значение параметра start больше, чем длина параметра StringMatch |
0 |
Замечания
Обратите внимание, что синтаксис функции InStrRev отличается от синтаксиса функции InStr.
Выражение |
Результаты: |
SELECT Names_InstrRev.*, InStrRev(FullName,»S») AS Expr1 FROM [Names_InstrRev]; |
Возвращает позицию строки «S» из значений в столбце FullName из таблицы Names. |
SELECT Names_InstrRev.*, InStrRev(FullName,»S»,10) AS InStrTest FROM [Names_InstrRev]; |
Возвращает позицию строки «S» из значений в столбце «ПолноеИмя», начиная с позиции 10 из таблицы Names и отображаемой в столбце InStrTest. |
VBA InStrRev | Как использовать функцию Excel VBA InStrRev?
Функция VBA INSTRREV , обозначающая « In String Reverse », возвращает позицию первого вхождения искомой строки (подстроки) в другой строке, начиная с конца строки (справа налево). ), из которого мы ищем доступную для поиска строку.
Функция INSTRREV начинает поиск искомой строки с конца, который нам нужно узнать, но считает позицию с начала. Потом, наконец, еще один INSTR Функция VBA (расшифровывается как «В строке» ) ищет строку в другой строке и возвращает позицию. Но эта функция начинает поиск с начала строки, из которой мы ищем искомую строку.
INSTRREV и INSTR являются встроенными String/Text VBA functionVBA FunctionФункции VBA служат основной цели для выполнения определенных вычислений и возврата значения. Поэтому в VBA мы используем синтаксис для указания параметров и типа данных при определении функции. Такие функции называются пользовательскими функциями.Подробнее MS Excel. Поэтому мы можем использовать их при написании любого макроса в редакторе Microsoft Visual Basic.
Содержание
- Excel VBA INSTRREV
- Синтаксис
- Возвращаемые значения
- Как использовать функцию VBA INSTRREV?
- Рекомендуемые статьи
- Синтаксис
Вы можете свободно использовать это изображение на своем веб-сайте, в шаблонах и т. д. Пожалуйста, предоставьте нам ссылку с указанием авторства. Как указать авторство? Ссылка на статью должна быть гиперссылкой
Например:
Источник: VBA INSTRREV (wallstreetmojo.com)
Синтаксис
Как мы видим на изображении выше, существуют два обязательных и два необязательных аргумента.
- StringCheck As String: Это обязательный аргумент. Нам нужно указать искомое строковое выражение.
- StringMatch As String: Этот аргумент также является обязательным. Нам нужно указать искомое строковое выражение.
- Начать как долго = -1: Это необязательный аргумент. Указываем числовое выражение. По умолчанию принимает значение -1, то есть поиск начинается с позиции последнего символа. Если мы укажем любое положительное значение, например 80, он начнет поиск с конца строки в этих 80 символах.
- Сравнить как VbCompareMethod = vbBinaryCompare As Long: Этот аргумент является необязательным.
Сравнение VBA | Числовое выражение | Указывает |
---|---|---|
vbUseCompareOption | -1 | Выполняет сравнение, используя настройку оператора Option Compare. Оператор Option Compare указывает метод сравнения строк модуля (двоичный, текстовый или базовый). Если модуль не включает оператор Option Compare, методом сравнения текста по умолчанию является Binary. |
vbBinaryCompare | 0 | Выполняет двоичное сравнение. (С учетом регистра) |
vbTextCompare | 1 | Выполняет текстовое сравнение. (без учета регистра) |
vbDatabaseCompare | 2 | Только Microsoft Access. Выполняет сравнение на основе информации в базе данных. |
Для этого аргумента можно указать следующие значения.
Возвращаемые значения
- Функция INSTRREV возвращает 0, если проверка строки имеет нулевую длину или совпадение строки не найдено или ‘начало’ аргумент > длина строки соответствует .
- Эта функция возвращает ‘Null’ , если проверка строки или соответствие строки равно ‘NULL’.
- Если при проверке строки найдено соответствие строки , функция возвращает позицию, в которой найдено совпадение.
Как использовать функцию VBA INSTRREV?
Вы можете скачать этот шаблон Excel VBA INSTRREV здесь — Шаблон VBA INSTRREV Excel
Предположим, у нас есть данные для названий фильмов и их режиссеров. Мы хотим разделить имена режиссеров.
У нас есть данные в 1201 строке. Так что если мы будем делать эту задачу вручную, это займет много времени.
Чтобы сделать то же самое, мы будем использовать код VBAИспользование кода VBAКод VBA относится к набору инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic (VBE) для выполнения определенной задачи.Подробнее . Шаги:
- Нам нужно щелкнуть команду «Visual Basic» , доступную в группе «Код» на вкладке «Разработчик» , или мы можем нажать Alt+F11 , чтобы открыть редактор Visual Basic.
- Мы вставим модуль , используя меню «Вставка» .
- Мы создадим подпрограмму с именем «SplittingNames».
- Нам нужны шесть переменных — одна для хранения значений ячеек, которыми мы будем манипулировать. Второй для хранения позиции первого пробела в строке, третий для хранения последнего пробела в строке, четвертый для хранения номера последней строки и пятый и шестой для строки и столбца, которые мы будем использовать для печати значений в соседних клетки.
- Нам нужно использовать следующий код, чтобы узнать последнюю использованную строку на листе.
Этот код сначала выберет ячейку B1, а затем выберет последнюю использованную ячейку в том же столбце, а затем мы назначим номер строки ячейки переменной «LastRow».
- Теперь, чтобы манипулировать всеми ячейками в столбце B, мы запустим цикл for .
- Мы будем хранить значения ячеек столбца B от строки 2 до строки 1201 одну за другой в переменной «s», чтобы манипулировать ими.
- Нам нужно установить значение переменной «Столбец» на 3, так как нам нужно записать разделенные именаРазделить именаРазделить имя в Excel относится к разделению имен на два отдельных столбца. Полное имя разбито на имя, фамилию и отчество. Мы можем разделить имена, используя несколько способов, таких как «метод текста в столбец» и «метод формулы». пробел в строке. Затем мы хотим, чтобы сама строка была выводом. Для этого мы укажем условие, используя «Инструкция If and Else» со знаком звездочки (обозначающим один или несколько символов) следующим образом:
- Если в строке есть пробел, мы хотим разделить строку. Чтобы сделать то же самое, мы использовали функцию INSTR и INSTRREV , чтобы узнать первую и последнюю позиции пробела соответственно. Это поможет нам найти первое и последнее слово в строке соответственно.
Функция INSTR принимает следующий аргумент:
Подробности аргумента
- Старт: С какой позиции начинать.
- String1: Нам нужно указать искомое строковое выражение.
- String2: Нам нужно указать искомое строковое выражение.
Сравнение как VbCompareMethod: Указание метода сравнения. По умолчанию это бинарное сравнение.
- Нам нужно использовать функцию VBA LEFT для извлечения левых символов из строки. Мы использовали Last Space-1 ’, чтобы получить левые символы перед последним пробелом.
Мы должны использовать функции RIGHT и LEN для извлечения правильных символов из строки после первого пробела.
Мы должны написать макрос. Теперь нам нужно запустить макрос с помощью клавиши F5 .
Код:
Sub SplittingNames() Dim как строка Dim FirstSpace As Long Dim LastSPace As Long Dim LastRow As Long Dim Row As Long Тусклый столбец такой длины Лист1. Диапазон("B1").Выбрать Selection.End(xlDown).Select LastRow = ActiveCell.Row Для строки = 2 до последней строки s = Sheet1.Cells(Row, 2).Value Столбец = 3 Если Нравится "* *" Тогда FirstSpace = InStr(1, с, "") LastSPace = InStrRev(s, " ") Sheet1.Cells(Row, Column).Value = Left(s, LastSPace - 1) Sheet1.Cells(Row, Column + 1).Value = Right(s, Len(s) - FirstSpace) Еще Sheet1.Cells(Row, Column).Value = s Конец, если Следующий Конец суб
Теперь у нас есть результат.
Рекомендуемые статьи
Эта статья представляет собой руководство по VBA INSTRREV. Здесь мы обсудим использование функции VBA INSTRREV, примеров и загружаемого шаблона Excel. Ниже приведены некоторые полезные статьи Excel, связанные с VBA: –
- ASC в VBA
- Вставка текстового поля с помощью VBA
- Бесплатный онлайн-курс VBA
Функция InStrRev (Visual Basic для приложений)
Редактировать
Твиттер LinkedIn Фейсбук Эл. адрес
- Статья
- 2 минуты на чтение
Возвращает позицию вхождения одной строки в другую от конца строки.
Синтаксис
InstrRev ( stringcheck , stringmatch , [ start , [ сравнить ]])
Синтаксис функции InstrRev имеет следующие именованные аргументы:
Часть | Описание |
---|---|
проверка струн | Обязательно. Искомое строковое выражение. |
совпадение строк | Обязательно. Искомое строковое выражение. |
начало | Дополнительно. Числовое выражение, задающее начальную позицию для каждого поиска. Если опущено, используется -1, что означает, что поиск начинается с позиции последнего символа. Если start содержит Null, возникает ошибка. |
сравнить | Дополнительно. Числовое значение, указывающее тип сравнения, используемого при оценке подстрок. Если опущено, выполняется бинарное сравнение. Значения см. в разделе «Настройки». |
Настройки
Аргумент сравнения может принимать следующие значения:
Константа | Значение | Описание |
---|---|---|
vbUseCompareOption | -1 | Выполняет сравнение, используя настройку оператора Option Compare . |
vbBinaryCompare | 0 | Выполняет двоичное сравнение. |
vbTextCompare | 1 | Выполняет текстовое сравнение. |
vbDatabaseCompare | 2 | Только Microsoft Access. Выполняет сравнение на основе информации из вашей базы данных. |
Возвращаемые значения
InStrRev возвращает следующие значения:
Если | InStrRev возвращает |
---|---|
stringcheck имеет нулевую длину | 0 |
stringcheck равно Null | Нулевой |
совпадение строк имеет нулевую длину | начало |
совпадение строк равно Null | Нулевой |
совпадение строк не найдено | 0 |
stringmatch находится в stringcheck | Позиция, в которой найдено совпадение |
начало > Лен ( проверка строки ) | 0 |
Обратите внимание, что синтаксис функции InstrRev отличается от синтаксиса функции Instr .