Цей підручник покаже, як використовувати функцію InStrRev VBA для пошуку тексту праворуч …
Функція InStrRev
Функція VBA InStrRev шукає положення підрядка всередині рядка. Він повертає підрахунок позицій зліва направо, але виконує пошук від кінця рядка до початку.
VBA InStrRev Знайти підрядок
Функцію VBA InStrRev можна використовувати для пошуку позиції підрядка всередині рядка.
12345678 | Sub InStrRevExample_1 ()MsgBox InStrRev ("ABCABC", "C") 'Результат: 6MsgBox InStrRev ("ABCABC", "BC") 'Результат: 5MsgBox InStrRev ("La La Land", "L") 'Результат: 7MsgBox InStrRev ("La La Land", "La") 'Результат: 7MsgBox InStrRev ("La La Land", "La") 'Результат: 4MsgBox InStrRev ("La La Land", "M") 'Результат: 0End Sub |
Вихідне положення VBA InStrRev
Функція VBA InStrRev може розпочати пошук підрядка з призначеної позиції, підрахованої зліва направо.
12345678 | Sub InStrRevExample_2 ()MsgBox InStrRev ("La La Land", "L") 'Результат: 7MsgBox InStrRev ("La La Land", "L", 8) 'Результат: 7MsgBox InStrRev ("La La Land", "L", 7) 'Результат: 7MsgBox InStrRev ("La La Land", "L", 6) 'Результат: 4MsgBox InStrRev ("La La Land", "L", 4) 'Результат: 4MsgBox InStrRev ("La La Land", "L", 3) 'Результат: 1End Sub |
Програмування VBA | Генератор коду працює для вас!
Чутливість до регістру VBA InStrRev
Функція VBA InStrRev за замовчуванням чутлива до регістру. Ви можете змінити цю поведінку на регістр без урахування регістру, використовуючи додатковий параметр. У цьому випадку ви також повинні визначити вихідну позицію пошуку.
123456789 | Sub InStrRevExample_3 ()'InstrRev за замовчуванням чутливий до регіструMsgBox InStrRev ("La La Land", "L") 'Результат: 7MsgBox InStrRev ("La La Land", "l") 'Результат: 0'InstrRev може виконувати пошук без урахування регіструMsgBox InStrRev ("La La Land", "L", -1, vbTextCompare) 'Результат: 7MsgBox InStrRev ("La La Land", "l", -1, vbTextCompare) 'Результат: 7End Sub |
VBA InStrRev Останній пробіл
Функція VBA InStrRev може знайти позицію останнього пробілу в рядку.
123456789 | Sub InStrRevExample_4 ()MsgBox InStrRev ("La La Land", "")Результат: 6MsgBox InStrRev ("Леонардо да Вінчі", "")Результат: 12MsgBox InStrRev ("Нехай сила буде з вами", "")Результат: 22End Sub |
VBA InStrRev Друге до останнього місця
Функція VBA InStrRev може знайти позицію другого до останнього пробілу в рядку. Ми можемо використовувати функцію VBA InStrRev, щоб знайти останній пробіл у рядку, а потім ми можемо знову використовувати InStrRev з новою початковою точкою, щоб знайти позицію другого до останнього пробілу
12345678910111213 | Sub InStrRevExample_5 ()Затемнити LastPos як ціле числоLastPos = InStrRev ("Нехай сила буде з вами", "")Результат MsgBox LastPos: 22Затемнити SecondLastPos як ціле числоSecondLastPos = InStrRev ("Нехай сила буде з вами", "", LastPos - 1)Результат MsgBox SecondLastPos: 17«InStrRev розпочав пошук простору перед останнім пробілом"Він знайде останній пробіл, оскільки здійснює пошук справа налівоEnd Sub |
Втомилися від пошуку прикладів коду VBA? Спробуйте AutoMacro!
VBA InStrRev Повернення імені файлу
Функцію VBA InStrRev можна використовувати для легкого повернення імені файлу з рядка, що містить шлях та ім'я файлу. Ми будемо використовувати функцію InStrRev з функціями VBA Len та VBA Right.
Функція VBA Len повертає довжину рядка:
1 | MsgBox Len ("XBCX") 'Результат: 4 |
Функція VBA Right повертає n символів з кінця рядка:
1 | MsgBox Праворуч ("ABCDE", 2) 'Результат: DE |
Ми можемо використовувати функцію InStrRev, щоб знайти останнє входження «\» у імені шляху, і використовувати функцію Len для обчислення довжини імені файлу. Право потім може витягти ім'я файлу.
12345678910111213141516171819202122232425262728 | Sub InStrRevExample_4 ()Dim PathEx як рядокPathEx = "C: \ MyFiles \ Other \ UsefulFile.pdf"Dim FilenameEx As StringFilenameEx = Справа (PathEx, Len (PathEx) - InStrRev (PathEx, "\"))Результат MsgBox FilenameEx: UsefulFile.pdf'Давайте розберемо цей кодMsgBox Len (PathEx)'Це довжина імені шляху (31)MsgBox InStrRev (PathEx, "\")'Це позиція останнього \ в рядкуMsgBox Len (PathEx) - InStrRev (PathEx, "\")'Це довжина імені файлу (14)'Різниця між повною довжиною та позицією останнього \ в рядку'(31-27 = 14)"Тепер ми знаємо довжину імені файлу, і, звичайно, це в кінці«Правильна функція ідеально підходить для цієї ситуаціїFilenameEx = Справа (PathEx, Len (PathEx) - InStrRev (PathEx, "\"))End Sub |