Dim pos AsInteger
pos = InStr("find the comma, in the string",",")
akan mengembalikan 15 dalam pos
Jika tidak ditemukan akan mengembalikan 0
Jika Anda perlu menemukan koma dengan rumus excel, Anda dapat menggunakan =FIND(",";A1)fungsi ini.
Perhatikan bahwa jika Anda ingin menggunakan Instruntuk menemukan posisi string case-insensitive gunakan parameter ketiga dari Instr dan berikan const vbTextCompare(atau hanya 1 untuk die-hards).
Dim posOf_A AsInteger
posOf_A = InStr(1,"find the comma, in the string","A", vbTextCompare)
akan memberi Anda nilai 14.
Perhatikan bahwa Anda harus menentukan posisi awal dalam kasus ini seperti yang dinyatakan dalam spesifikasi yang ditautkan: Argumen awal diperlukan jika perbandingan ditentukan.
Berdasarkan jawaban Rene, Anda juga bisa menulis fungsi yang mengembalikan TRUE jika substring ada, atau FALSE jika bukan:
PublicFunction Contains(strBaseString AsString, strSearchTerm AsString)AsBoolean'Purpose: Returns TRUE if one string exists within anotherOnErrorGoTo ErrorMessage
Contains = InStr(strBaseString, strSearchTerm)ExitFunction
ErrorMessage:
MsgBox "The database has generated an error. Please contact the database administrator, quoting the following error message: '"& Err.Description &"'", vbCritical,"Database Error"EndEndFunction
Apa jenis kesalahan database yang kita harapkan dalam fungsi ini? Perangkap kesalahan dan pesan kesalahan tampaknya sama sekali tidak ada gunanya.
Roobie Nuby
11
@RoobieNuby Itu hanya penanganan kesalahan default saya. Saya memasukkannya ke dalam semua fungsi saya karena jika terjadi kesalahan, saya ingin staf memanggil saya, bukan untuk mencoba dan memperbaikinya sendiri.
INSTR
berhasil untuk Anda?Jawaban:
Gunakan fungsi Instr
akan mengembalikan 15 dalam pos
Jika tidak ditemukan akan mengembalikan 0
Jika Anda perlu menemukan koma dengan rumus excel, Anda dapat menggunakan
=FIND(",";A1)
fungsi ini.Perhatikan bahwa jika Anda ingin menggunakan
Instr
untuk menemukan posisi string case-insensitive gunakan parameter ketiga dari Instr dan berikan constvbTextCompare
(atau hanya 1 untuk die-hards).akan memberi Anda nilai 14.
Perhatikan bahwa Anda harus menentukan posisi awal dalam kasus ini seperti yang dinyatakan dalam spesifikasi yang ditautkan: Argumen awal diperlukan jika perbandingan ditentukan.
sumber
Anda juga dapat menggunakan kata khusus
like
:sumber
Ada juga InStrRev fungsi yang melakukan jenis hal yang sama, tetapi mulai mencari dari akhir teks ke awal.
Per @ rene menjawab ...
... masih akan mengembalikan 15 ke pos, tetapi jika string memiliki lebih dari satu string pencarian, seperti kata "the", maka:
... akan mengembalikan 20 ke pos, bukannya 6.
sumber
Berdasarkan jawaban Rene, Anda juga bisa menulis fungsi yang mengembalikan TRUE jika substring ada, atau FALSE jika bukan:
sumber