Ten samouczek pokaże, jak korzystać z funkcji InStrRev VBA, aby znaleźć tekst od prawej…
Funkcja InStrRev
Funkcja VBA InStrRev wyszukuje pozycję podciągu w ciągu. Zwraca pozycję licząc od lewej do prawej, ale wykonuje wyszukiwanie od końca ciągu do początku.
VBA InStrRev Znajdź podciąg
Funkcja VBA InStrRev może służyć do znajdowania pozycji podciągu w ciągu.
12345678 | Sub InStrRevExample_1()MsgBox InStrRev("ABCABC", "C") 'Wynik: 6MsgBox InStrRev("ABCABC", "BC") 'Wynik to: 5MsgBox InStrRev("La La Land", "L") 'Wynik to: 7MsgBox InStrRev("La La Land", "La") 'Wynik to: 7MsgBox InStrRev("La La Land", "La") 'Wynik to: 4MsgBox InStrRev("La La Land", "M") 'Wynik to: 0Napis końcowy |
Pozycja startowa VBA InStrRev
VBA InStrRev Funkcja może rozpocząć wyszukiwanie podciągu od przypisanej pozycji liczonej od lewej do prawej.
12345678 | Sub InStrRevExample_2()MsgBox InStrRev("La La Land", "L") 'Wynik to: 7MsgBox InStrRev("La La Land", "L", 8) 'Wynik: 7MsgBox InStrRev("La La Land", "L", 7) 'Wynik to: 7MsgBox InStrRev("La La Land", "L", 6) 'Wynik to: 4MsgBox InStrRev("La La Land", "L", 4) 'Wynik to: 4MsgBox InStrRev("La La Land", "L", 3) 'Wynik: 1Napis końcowy |
Programowanie VBA | Generator kodu działa dla Ciebie!
Rozróżnianie wielkości liter w VBA InStrRev
Funkcja VBA InStrRev domyślnie rozróżnia wielkość liter. Możesz zmienić to zachowanie, aby nie uwzględniać wielkości liter za pomocą opcjonalnego parametru. W takim przypadku należy również zdefiniować pozycję początkową wyszukiwania.
123456789 | Sub InStrRevExample_3()'InstrRev domyślnie rozróżnia wielkość literMsgBox InStrRev("La La Land", "L") 'Wynik to: 7MsgBox InStrRev("La La Land", "l") 'Wynik to: 0'InstrRev może wykonywać wyszukiwania bez uwzględniania wielkości literMsgBox InStrRev("La La Land", "L", -1, vbTextCompare) 'Wynik to: 7MsgBox InStrRev("La La Land", "l", -1, vbTextCompare) 'Wynik to: 7Napis końcowy |
VBA InStrRev ostatnia przestrzeń
VBA InStrRev Function może znaleźć pozycję ostatniej spacji w ciągu.
123456789 | Sub InStrRevExample_4()MsgBox InStrRev("La Land", " ")„Wynik to: 6”MsgBox InStrRev("Leonardo da Vinci", " ")„Wynik to: 12”MsgBox InStrRev("Niech Moc będzie z tobą", " ")„Wynik to: 22”Napis końcowy |
VBA InStrRev Od drugiej do ostatniej spacji
Funkcja VBA InStrRev może znaleźć pozycję przedostatniej spacji w ciągu. Możemy użyć funkcji VBA InStrRev, aby znaleźć ostatnią spację w ciągu, a następnie ponownie użyć InStrRev z nowym punktem początkowym, aby znaleźć pozycję przedostatniej spacji
12345678910111213 | Sub InStrRevExample_5()Dim LastPos As IntegerLastPos = InStrRev("Niech Moc będzie z tobą", " ")MsgBox LastPos 'Wynik to: 22Dim SecondLastPos As IntegerSecondLastPos = InStrRev("Niech Moc będzie z tobą", " ", LastPos - 1)MsgBox SecondLastPos 'Wynik to: 17'InStrRev rozpoczął wyszukiwanie spacji tuż przed ostatnią spacją„Znajdzie przedostatnią spację, ponieważ przeszukuje od prawej do lewej”Napis końcowy |
Masz dość wyszukiwania przykładów kodu VBA? Wypróbuj Automakro!
VBA InStrRev Zwróć nazwę pliku
Funkcja VBA InStrRev może być użyta do łatwego zwrócenia nazwy pliku z ciągu zawierającego ścieżkę i nazwę pliku. Użyjemy funkcji InStrRev z funkcjami VBA Len i VBA Right.
Funkcja VBA Len zwraca długość ciągu:
1 | MsgBox Len("XBCX") 'Wynik to: 4 |
Funkcja VBA Right zwraca n znaków od końca ciągu:
1 | MsgBox Right("ABCDE", 2) 'Wynik: DE |
Możemy użyć funkcji InStrRev, aby znaleźć ostatnie wystąpienie znaku „\” w ścieżce i użyć funkcji Len, aby obliczyć długość nazwy pliku. Prawo może następnie wyodrębnić nazwę pliku.
12345678910111213141516171819202122232425262728 | Sub InStrRevExample_4()Dim PathEx jako ciągPathEx = "C:\MyFiles\Other\UsefulFile.pdf"Dim Nazwa pliku Ex As StringFilenameEx = Right(PathEx, Len(PathEx) - InStrRev(PathEx, "\"))MsgBox FilenameEx 'Wynik to: UsefulFile.pdf„Rozbijmy ten kod”MsgBox Len(PathEx)„To jest długość nazwy ścieżki (31)MsgBox InStrRev(PathEx, "\")'To jest pozycja ostatniego \ w łańcuchuMsgBox Len(PathEx) - InStrRev(PathEx, "\")'To jest długość nazwy pliku (14)'Różnica między pełną długością a pozycją ostatniego \ w łańcuchu„(31-27=14)„Teraz znamy długość nazwy pliku i oczywiście jest na końcu”„Właściwa funkcja jest idealna w tej sytuacji”FilenameEx = Right(PathEx, Len(PathEx) - InStrRev(PathEx, "\"))Napis końcowy |