VBA InStr

Fungsi InStr VBA Excel

Instr di VBA digunakan untuk mengetahui posisi substring yang diberikan dalam sebuah string setelah kita menentukan metode perbandingan untuk fungsi tersebut, ada empat metode perbandingan yang berbeda untuk fungsi ini, Instr adalah fungsi string tetapi output yang dikembalikan oleh fungsinya adalah numerik jadi output fungsi ini dalam variabel integer.

String di VBA tidak lain adalah serangkaian karakter, yaitu semua teks yang dilengkapi dengan tanda kutip ganda diperlakukan sebagai string. Fungsi InStr adalah fungsi teks bawaan yang digunakan untuk memanipulasi String. Misalnya - Jika Anda ingin mengekstrak substring dari kalimat atau jika Anda ingin menerapkan perubahan desain font ke string tertentu dalam rangkaian karakter atau jika Anda ingin menemukan posisi karakter dan banyak kemungkinan lainnya, Anda dapat menggunakan InStr.

Sintaksis

Ini memiliki 4 argumen seperti yang ditunjukkan pada gambar di bawah ini.

  • [Start]: Ini tidak wajib. Ini adalah nilai numerik yang perlu kita tentukan dari posisi string fungsi Instr mulai mencari teks yang disediakan. Sebagai contoh: jika Anda ingin mencari karakter “a” pada kata “Bangalore” dari posisi ke-3 kita perlu memberi tahu posisi awal fungsi Instr sebagai 3. Jadi dari posisi ke-3 karakter “a” ada di posisi ke-5. Jika Anda mengabaikan parameter ini, nilai defaultnya adalah 1.
  • String 1: Ini adalah string sebenarnya yang kami sediakan, yaitu dari teks ini kami mencoba menemukan substring. Misalnya, jika Anda mencari string "a" di "Bangalore", String 1 di Bangalore.
  • String 2: Ini tidak lain adalah string yang kita cari. Misalnya, jika Anda mencari string “a” dalam “Bangalore”, String 2 adalah sebuah .
  • [Bandingkan]: Ini lagi-lagi merupakan argumen opsional. Ada tiga jenis opsi yang tersedia dalam argumen [bandingkan].

  • vbBinaryCompare: Ini hanyalah pencarian peka huruf besar kecil dari substring (string 2) di String 1. Misalnya, jika kita mencari "a" dalam kata "Bangalore", Instr akan mengembalikan 2 sebagai hasil dan jika Anda mencari untuk "A" dalam kata "Bangalore" Instr akan mengembalikan 0 sebagai hasil karena string yang diberikan adalah nilai huruf besar.

Kita juga bisa meletakkan nol (0) sebagai argumen.

vbTextCompare: Ini bukan penelusuran case sensitive dari string 2 dalam string 1. Misalnya, jika kita mencari "a" dalam kata "Bangalore", Instr akan mengembalikan 2 sebagai hasilnya dan jika Anda mencari "A" dalam kata "Bangalore" Instr akan menghasilkan 2 juga. Logikanya adalah A = a, B = b, C = c dll….

Kami juga dapat menempatkan satu (1) sebagai argumen.

vbDatabaseCompare: Ini digunakan untuk membandingkan informasi dari database Anda, misalnya database Microsoft Access.

Kami juga dapat menempatkan satu (-1) sebagai argumen.

5 Contoh Teratas menggunakan Fungsi Instr VBA

Anda dapat mengunduh Template Excel Fungsi Instr VBA ini di sini - Template Excel Fungsi Instr VBA

Contoh 1

Mari kita mulai dengan contoh pertama. Dalam kata Bangalore temukan posisi karakter a.

Kode di bawah ini akan melakukan tugas untuk kita.

Kode:

 Sub Instr_Contoh1 () Dim i Sebagai Varian i = InStr ("Bangalore", "a") MsgBox i End Sub 

Sekarang jalankan kode VBA yang diberikan di atas menggunakan F5 Key atau Anda juga dapat menjalankan kode ini secara manual seperti yang ditunjukkan pada gambar di bawah ini.

Keluaran:

Contoh # 2

Sekarang di kata Bangalore temukan posisi karakter "a" dari posisi ketiga.

Kode di bawah ini akan melakukan tugas untuk kita.

Kode:

 Sub Instr_Contoh2 () Dim i Sebagai Varian i = InStr (3, "Bangalore", "a") MsgBox i End Sub 

Untuk menjalankan kode yang diberikan di atas, Anda dapat menggunakan tombol F5 atau Anda juga dapat menjalankan kode ini secara manual seperti yang ditunjukkan pada gambar di bawah ini.

Keluaran:

Sekarang pada gambar di atas, lihat perbedaan dari kode sebelumnya. Karena kita telah menyebutkan posisi awal karakter sebagai 3 itu mengabaikan karakter pertama "a" pada posisi ke-2.

Contoh # 3

Sekarang kita akan melihat pencarian case sensitive. Dalam kata Bangalore temukan huruf “A”.

Untuk ini, kita perlu menyediakan argumen bandingkan sebagai vbBinaryCompare.

Kode:

 Sub Instr_Contoh3 () Dim i Sebagai Varian i = InStr (1, "Bangalore", "A", vbBinaryCompare) MsgBox i End Sub 

Sekarang jalankan, kode ini menggunakan Tombol F5 atau Anda juga dapat menjalankan kode ini secara manual.

Keluaran:

Karena kita telah menyediakan argumen pembanding sebagai fungsi Instr vbBinaryCompare mengembalikan hasil sebagai nol karena tidak ada huruf besar "A" .

Contoh # 4

Sekarang kita akan melihat satu lagi pencarian case sensitive. Dalam kata Bangalore temukan huruf “A”. Contoh sebelumnya mengembalikan hasil sebagai nol.

Untuk mengatasi pendekatan case sensitive di sini, kita perlu menyediakan argumen pembanding sebagai vbTextCompare.

Kode:

 Sub Instr_Example4 () Dim i As Variant i = InStr (1, "Bangalore", "A", vbTextCompare) MsgBox i End Sub 

Sekarang Jalankan, kode ini menggunakan Tombol F5 atau Anda juga dapat menjalankan kode ini secara manual.

Keluaran:

Contoh # 5

Sekarang kita akan melihat tingkat lanjutan dari fungsi Instr. Jika Anda memiliki banyak sheet yang memiliki nama yang kurang lebih mirip dan Anda ingin menyembunyikan semua sheet tersebut sekaligus, kami dapat menggunakan kode di bawah ini untuk menyembunyikan sheet tertentu.

Misalnya, saya punya 5 lembar bernama Summary 1, Summary 2, Summary 3, Summary 4, dan Data Sheet.

Sekarang saya ingin menyembunyikan semua lembar yang memiliki kata "Ringkasan". Gunakan kode di bawah ini untuk menyembunyikan semua lembar yang memiliki kata Summary dalam namanya.

Kode:

 Sub To_Hide_Specific_Sheet () Redupkan Ws Sebagai Lembar Kerja Untuk Setiap W Dalam ActiveWorkbook.Worksheets Jika InStr (Ws.Name, "Ringkasan")> 0 Kemudian Ws.Visible = xlSheetVeryHidden End Jika Berikutnya Fungsi InStr Ws mencari kata atau frase dalam nama sheet 'Jika ditemukan maka akan disembunyikan End Sub 

Sekarang Jalankan, kode ini menggunakan Tombol F5 atau Anda juga dapat menjalankan kode ini secara manual dan melihat Output.

Demikian pula untuk menampilkan semua sheet tersebut, gunakan kode di bawah ini.

Kode:

 Sub To_UnHide_Specific_Sheet () Redupkan Ws Sebagai Worksheet Untuk Setiap Ws Di ActiveWorkbook.Worksheets Jika InStr (Ws.Name, "Summary")> 0 Kemudian Ws.Visible = xlSheetVisible End If Next Ws 'InStr function mencari kata atau frase dalam nama sheet 'Jika ditemukan maka akan disembunyikan End Sub 

Sekarang Jalankan, kode ini menggunakan Tombol F5 atau Anda juga dapat menjalankan kode ini secara manual dan melihat Output.

Hal-hal untuk diingat

  • Instr adalah fungsi case sensitive. Untuk menghilangkan masalah yang peka huruf besar kecil ini, Anda perlu menyediakan argumen [bandingkan] sebagai.
  • If you are searching for case sensitive character you need to supply the [compare] argument as by default VBA takes this as the argument even if you do not supply.
  • Instr is a VBA function so that you cannot use it in an excel worksheet like other built-in formulas.
  • If the function cannot find the String 2 the result will be zero.