Mengembalikan Varian (Long) yang menentukan posisi kejadian pertama satu string dalam string lainnya.
Sintaks
InStr ([start, ] string1, string2 [, bandingkan ] )
Sintaks fungsi InStr memiliki argumen ini:
Argumen |
Deskripsi |
---|---|
mulai |
Opsional. Ekspresi numerik yang mengatur posisi awal untuk setiap pencarian. Jika dihilangkan, pencarian dimulai pada posisi karakter pertama. Jika mulai berisi Null, terjadi kesalahan. Argumen mulai diperlukan jika bandingkan ditentukan. |
string1 |
Diperlukan. Ekspresi string sedang dicari. |
string2 |
Diperlukan. Ekspresi string dicari. |
bandingkan |
Opsional. Menentukan tipe perbandingan string. Jika bandingkan adalah Null, kesalahan terjadi. Jika bandingkan dihilangkan, pengaturan PerbandinganOpsi menentukan tipe perbandingan. Tentukan LCID (LocaleID) yang valid untuk menggunakan aturan khusus lokal dalam perbandingan. |
Tips: Penyusun Ekspresi memiliki IntelliSense, sehingga Anda bisa melihat argumen apa yang diperlukan ekspresi Anda.
Pengaturan
Pengaturan argumen bandingkan adalah:
Konstanta |
Nilai |
Deskripsi |
---|---|---|
vbUseCompareOption |
-1 |
Melakukan perbandingan menggunakan pengaturan pernyataan Option Compare . |
vbBinaryCompare |
0 |
Melakukan perbandingan biner. |
vbTextCompare |
1 |
Melakukan perbandingan tekstual. |
Nilai yang Dikembalikan
Jika |
InStr mengembalikan |
---|---|
string1 panjangnya nol |
0 |
string1 adalah Null |
Null |
string2 panjangnya nol |
mulai |
string2 adalah Null |
Null |
string2 tidak ditemukan |
0 |
string2 ditemukan dalam string1 |
Posisi di mana kecocokan ditemukan |
mulai > string2 |
0 |
Keterangan
Fungsi InStrB digunakan dengan data byte yang terdapat dalam string. Alih-alih mengembalikan posisi karakter dari kemunculan pertama dari satu string di dalam string lain, InStrB mengembalikan posisi byte.
Contoh
Menggunakan fungsi InStr dalam ekspresi Anda dapat menggunakan InStr di mana pun Anda dapat menggunakan ekspresi. Misalnya, jika Anda ingin menemukan posisi periode pertama (.) dalam bidang yang berisi alamat IP (bernama IPAddress), Anda dapat menggunakan InStr untuk menemukannya, seperti ini:
InStr(1,[IPAddress],".")
Fungsi InStr memeriksa setiap nilai dalam bidang IPAddress dan mengembalikan posisi periode pertama. Oleh karena itu, jika bagian pertama dari alamat IP adalah 10., fungsi mengembalikan nilai 3.
Anda kemudian dapat menggunakan fungsi lain, beroperasi pada output fungsi InStr , untuk mengekstrak bagian alamat IP yang mendahului periode pertama, seperti ini:
Left([IPAddress],(InStr(1,[IPAddress],".") -1))
Dalam contoh ini, InStr(1,[IPAddress],".") mengembalikan posisi periode pertama. Mengurangi 1 menentukan berapa banyak karakter sebelum periode pertama, dalam hal ini, 2. Fungsi Left kemudian mengekstrak banyak karakter dari bagian kiri bidang IPAddress, mengembalikan nilai 10.
Menggunakan InStr dalam kode VBA
Catatan: Contoh yang mengikuti demonstrasi penggunaan fungsi ini dalam modul Visual Basic for Applications (VBA).
Contoh ini menggunakan fungsi InStr untuk mengembalikan posisi kemunculan pertama dari satu string di dalam string lain.
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default
' (last argument is omitted).
MyPos = Instr(SearchString, SearchChar) ' Returns 9.
MyPos = Instr(1, SearchString, "W") ' Returns 0.