Tento tutoriál předvede, jak pomocí funkce InStrRev VBA najít text z pravého…
Funkce InStrRev
Funkce VBA InStrRev vyhledává pozici podřetězce uvnitř řetězce. Vrací počítání pozic zleva doprava, ale provádí vyhledávání od konce řetězce na začátek.
VBA InStrRev Najít podřetězec
Funkci VBA InStrRev lze použít k nalezení polohy podřetězce uvnitř řetězce.
12345678 | Sub InStrRevExample_1 ()Výsledek MsgBox InStrRev ("ABCABC", "C") je: 6MsgBox InStrRev ("ABCABC", "BC") 'Výsledek je: 5MsgBox InStrRev ("La La Land", "L") 'Výsledek je: 7MsgBox InStrRev ("La La Land", "La") 'Výsledek je: 7MsgBox InStrRev ("La La Land", "La") 'Výsledek je: 4Výsledek MsgBox InStrRev („La La Land“, „M“) je: 0End Sub |
Výchozí pozice VBA InStrRev
Funkce VBA InStrRev může spustit hledání podřetězce z přiřazené pozice počítané zleva doprava.
12345678 | Sub InStrRevExample_2 ()MsgBox InStrRev ("La La Land", "L") 'Výsledek je: 7MsgBox InStrRev („La La Land“, „L“, 8) Výsledek je: 7MsgBox InStrRev ("La La Land", "L", 7) 'Výsledek je: 7MsgBox InStrRev ("La La Land", "L", 6) 'Výsledek je: 4MsgBox InStrRev („La La Land“, „L“, 4) Výsledek je: 4MsgBox InStrRev („La La Land“, „L“, 3) Výsledkem je: 1End Sub |
Programování VBA | Generátor kódu pracuje pro vás!
Citlivost na malá a velká písmena VBA InStrRev
Funkce VBA InStrRev ve výchozím nastavení rozlišuje velká a malá písmena. Toto chování můžete změnit na malá a velká písmena pomocí volitelného parametru. V takovém případě musíte také definovat počáteční pozici hledání.
123456789 | Sub InStrRevExample_3 ()„InstrRev ve výchozím nastavení rozlišuje velká a malá písmenaMsgBox InStrRev ("La La Land", "L") 'Výsledek je: 7MsgBox InStrRev ("La La Land", "l") 'Výsledek je: 0„InstrRev může provádět vyhledávání nerozlišující malá a velká písmenaMsgBox InStrRev ("La La Land", "L", -1, vbTextCompare) 'Výsledek je: 7MsgBox InStrRev ("La La Land", "l", -1, vbTextCompare) 'Výsledek je: 7End Sub |
Poslední prostor VBA InStrRev
Funkce VBA InStrRev dokáže najít pozici posledního místa v řetězci.
123456789 | Sub InStrRevExample_4 ()MsgBox InStrRev ("La La Land", "")„Výsledek je: 6MsgBox InStrRev ("Leonardo da Vinci", "")„Výsledek je: 12MsgBox InStrRev („Ať je síla s tebou“, „“)„Výsledek je: 22End Sub |
VBA InStrRev předposlední mezera
Funkce VBA InStrRev dokáže najít pozici předposledního prostoru v řetězci. Můžeme použít funkci VBA InStrRev k nalezení posledního místa v řetězci a poté můžeme znovu použít InStrRev s novým počátečním bodem k nalezení polohy předposledního prostoru
12345678910111213 | Sub InStrRevExample_5 ()Dim LastPos jako celé čísloLastPos = InStrRev („Ať je síla s tebou“, „“)Výsledek MsgBox LastPos je: 22Dim SecondLastPos jako celé čísloSecondLastPos = InStrRev („Ať je síla s tebou“, „“, LastPos - 1)Výsledek MsgBox SecondLastPos je: 17„InStrRev zahájil hledání prostoru těsně před posledním mezerou„Najde předposlední mezeru, protože hledá zprava dolevaEnd Sub |
Už vás nebaví hledat příklady kódu VBA? Zkuste AutoMacro!
VBA InStrRev návratové jméno souboru
Pomocí funkce VBA InStrRev lze snadno vrátit název souboru z řetězce, který obsahuje cestu a název souboru. Použijeme funkci InStrRev s funkcemi VBA Len a VBA Right.
Funkce VBA Len vrací délku řetězce:
1 | Výsledek MsgBox Len ("XBCX") je: 4 |
Funkce VBA Right vrací n znaků z konce řetězce:
1 | MsgBox Right ("ABCDE", 2) 'Výsledkem je: DE |
Můžeme použít funkci InStrRev k nalezení posledního výskytu „\“ v názvu cesty a pomocí funkce Len vypočítat délku názvu souboru. Vpravo pak můžete extrahovat název souboru.
12345678910111213141516171819202122232425262728 | Sub InStrRevExample_4 ()Dim PathEx jako řetězecPathEx = "C: \ MyFiles \ Other \ UsefulFile.pdf"Dim FilenameEx jako řetězecFilenameEx = Right (PathEx, Len (PathEx) - InStrRev (PathEx, "\"))Výsledek MsgBox FilenameEx je: UsefulFile.pdf„Pojďme rozebrat tento kódMsgBox Len (PathEx)„Toto je délka názvu cesty (31)MsgBox InStrRev (PathEx, "\")„Toto je pozice posledního \ v řetězciMsgBox Len (PathEx) - InStrRev (PathEx, "\")„Toto je délka názvu souboru (14)'Rozdíl mezi plnou délkou a polohou posledního \ v řetězci“(31–27 = 14)"Nyní známe délku názvu souboru a samozřejmě je na konci."„Správná funkce je pro tuto situaci ideálníFilenameEx = Right (PathEx, Len (PathEx) - InStrRev (PathEx, "\"))End Sub |