Mengembalikan Varian (Long) yang menentukan posisi kejadian pertama satu string dalam string lainnya.
Sintaks
InStr([start, ] string1, string2 [, bandingkan ] )
Sintaks fungsi InStr memiliki argumen berikut:
| Argumen | Deskripsi |
|---|---|
| mulai | Opsional. Ekpresi numerik yang mengatur posisi awal untuk setiap pencarian. Jika dihilangkan, pencarian dimulai pada posisi karakter pertama. Jika start berisi Null, kesalahan akan terjadi. Argumen mulai diperlukan jika bandingkan ditentukan. |
| string1 | Diperlukan. Ekspresi string sedang dicari. |
| string2 | Diperlukan. Ekspresi string dicari. |
| bandingkan | Opsional. Menentukan jenis perbandingan string. Jika bandingkan adalah Null, kesalahan terjadi. Jika perbandingan dikosongkan, pengaturan OptionCompare menentukan tipe perbandingan. Tentukan LCID (LocaleID) yang valid untuk menggunakan aturan khusus lokal dalam perbandingan. |
Tips
Penyusun Ekspresi memiliki IntelliSense, sehingga Anda dapat melihat argumen apa yang dibutuhkan ekspresi Anda.
Pengaturan
Pengaturan argumen perbandingan adalah:
| Konstanta | Value | Deskripsi |
|---|---|---|
| vbUseCompareOption | -1 | Melakukan perbandingan menggunakan pengaturan pernyataan Option Bandingkan . |
| vbBinaryCompare | 0 | Melakukan perbandingan biner. |
| vbTextCompare | 1 | Melakukan perbandingan tekstual. |
Mengembalikan nilai
| Jika | Pengembalian InStr |
|---|---|
| String1 adalah panjang nol | 0 |
| string1 adalah Null | Null |
| string2 adalah panjang 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 terkandung dalam string. Alih-alih mengembalikan posisi karakter dari kemunculan pertama satu string 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 mencari 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, yang 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 yang mendahului periode pertama, dalam hal ini, 2. Fungsi Left kemudian mengekstrak karakter sebanyak itu 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 satu string 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.