Funkcja InStr VBA zwraca pozycję znaku w ciągu znaków. Jeśli chcemy, którą pozycje w danym tekscie zajmuje znak, lub wyraz powinniśmy skorzystać właśnie z tej funkcji. Funkcja może także służyć do szukania wyrazów w tekcie i wycinania ich w połączeniu z funkcj Mid VBA. Jeśli chcielibyśmy znleźć pozycję ciągu znaków w danym tekscie zaczynając od końca, powinniśmy skorzystać z funkcji InstrRev.
'datatalk.pl InStr([Start], [String1], [String2], [Compare As VbCompareMethod = vbBinaryCompare])
Start: Pozycja w tekscie, od której zaczynamy wyszukiwanie.
String1: Ciąg tekstowy, w którym szukamy ciągu znaków.
String2: Szukany ciąg znaków.
Compare As VbCompareMethod: Argument opcjonlny. Typ porównania. Wartość default to 0. Wartości dla argumentu przedstawia poniższa tabela:
Stała | Wartość | Opis |
vbBinaryCompare | 0 | Porównanie binarne. Uwzględnia wielkość znaków. |
vbTextCompare | 1 | Porównanie tekstowe. Nie uwzględnia wielkości znaków |
Zwrot funkcji: Number / Wartość liczbowa.
Jak używać funkcji InStr w VBA Excel? Poniżej przykłady użycia funkcji InStr w Edytorze VisualBasic.
Przykład 1: Przykład użycia funkcji InStr VBA – wynik w oknie MsgBox.
'datatalk.pl Dim strValue As String strValue = "Nauka funkcji VBA" MsgBox InStr(1, strValue, "f") MsgBox InStr(1, strValue, "a") MsgBox InStr(1, strValue, "A", vbBinaryCompare) MsgBox InStr(1, strValue, "A", vbTextCompare)
Przykład 2: VBA InStr – przykład funkcji – wynik w arkuszu Excel.
'datatalk.pl Dim strValue2 As String strValue2 = "Nauka funkcji VBA" Range("A1") = InStr(6, strValue2, "f") Range("A2") = InStr(6, strValue2, "a") Range("A3") = InStr(6, strValue2, "A", vbBinaryCompare) Range("A4") = InStr(6, strValue2, "A", vbTextCompare)
Przykład 3: VBA InStr – Jak wyciągnąć tekst z innego tekstu. Tekst pomiędzy dwoma spacjami.
'datatalk.pl Dim strValue3 As String Dim intValue1 As Integer Dim intValue2 As Integer strValue3 = "Nauka funkcji VBA" intValue1 = InStr(1, strValue3, " ") intValue2 = InStr(InStr(1, strValue3, " ") + 1, strValue3, " ") MsgBox Mid(strValue3, intValue1, intValue2 - intValue1) Range("A1") = Mid(strValue3, intValue1, intValue2 - intValue1)
Funkcję możemy stosować w: Excel 2003, Excel 2007, Excel 2010, Excel 2013, Excel 2016.
Artykuł jest częścią listy funkcji VBA Excel. Listę wszystkich funkcji VBA znajdziesz pod tym adresem: Funkcje VBA.
W jaki sposób w Excel zmienić datę na pierwszy lub ostatni dzień miesiąca? W tym…
Średnia ważona w Excel - Jak ją obliczyć W tym przykładzie dowiesz się jak obliczyć…
Data i godzina w Excel - Jak ją szybko wstawić Jest wiele sposobów na wstawienie…
Dni robocze w Excel - Jak je obliczyć? Jeśli chcesz obliczyć dni robocze w Excel…
Kurs Excel - poziom podstawowy Kurs Excel od podstaw jest już opublikowany. Możesz z niego…
Jak w Excel zrobić pierwiastek inny niż drugiego stopnia Jeśli chcesz w Excel obliczyć pierwiastek…