VBA InStr

Fungsi Excel VBA InStr

Instr dalam VBA digunakan untuk mengetahui posisi substring tertentu dalam string setelah kita menentukan kaedah perbandingan dengan fungsi, ada empat kaedah perbandingan yang berbeza untuk fungsi ini, Instr adalah fungsi string tetapi output yang dikembalikan oleh fungsi adalah berangka sehingga output fungsi ini berada dalam pemboleh ubah integer.

Rentetan dalam VBA tidak lain hanyalah rangkaian watak iaitu semua teks yang dibekalkan dengan petikan berganda dianggap sebagai rentetan. Fungsi InStr adalah fungsi teks terbina dalam yang digunakan untuk memanipulasi String. Contohnya - Sekiranya anda ingin mengekstrak substring dari ayat atau jika anda ingin menerapkan perubahan reka bentuk fon pada rentetan tertentu dalam rangkaian watak atau jika anda ingin mencari kedudukan watak dan banyak kemungkinan lain, anda boleh menggunakan InStr.

Sintaks

Ia mempunyai 4 argumen seperti yang ditunjukkan pada gambar di bawah.

  • [Mula]: Ini tidak wajib. Ini adalah nilai berangka yang perlu kita tentukan dari kedudukan rentetan fungsi Instr yang mula mencari teks yang disediakan. Sebagai contoh: jika anda ingin mencari watak "a" dalam perkataan "Bangalore" dari posisi ke-3 kita perlu memberitahu fungsi instruksinya sebagai permulaan 3. Oleh itu dari kedudukan ke-3 watak "a" berada di kedudukan ke-5. Sekiranya anda mengabaikan parameter ini, nilai lalai adalah 1.
  • Rentetan 1: Ini adalah tali sebenar yang kami sediakan iaitu dari teks ini kami berusaha mencari substring. Contohnya, jika anda mencari rentetan "a" di "Bangalore", String 1 di Bangalore.
  • Rentetan 2: Ini hanyalah tali yang kami cari. Contohnya, jika anda mencari rentetan "a" di "Bangalore", String 2 adalah a .
  • [Bandingkan]: Ini sekali lagi hujah pilihan. Terdapat tiga jenis pilihan yang ada dalam argumen [bandingkan].

  • vbBinaryCompare: Ini tidak lain hanyalah pencarian substring (string 2) yang sensitif dalam String 1. Sebagai contoh, jika kita mencari "a" dalam perkataan "Bangalore" Instr akan mengembalikan 2 sebagai hasilnya dan jika anda mencari untuk "A" dalam kata "Bangalore" Instr akan mengembalikan 0 sebagai hasilnya kerana rentetan yang diberikan adalah nilai huruf besar.

Kita juga boleh meletakkan sifar (0) sebagai hujah.

vbTextCompare: Ini bukan pencarian huruf besar-kecil yang sensitif huruf 2 dalam rentetan 1. Contohnya, jika kita mencari "a" dalam kata "Bangalore" Instr akan mengembalikan 2 sebagai hasilnya dan jika anda mencari "A" dalam perkataan "Bangalore" Instr akan mengembalikan 2 juga. Logik adalah A = a, B = b, C = c dll ....

Kita juga boleh meletakkan satu (1) sebagai hujah.

vbDatabaseCompare: Ini digunakan untuk membandingkan maklumat dari pangkalan data anda iaitu pangkalan data Microsoft Access.

Kita juga boleh meletakkan satu (-1) sebagai hujah.

5 Contoh teratas penggunaan Fungsi Instruks VBA

Anda boleh memuat turun Templat Excel Fungsi Instrumen VBA ini di sini - Templat Excel Fungsi Instrumen VBA

Contoh # 1

Mari mulakan dengan contoh pertama. Dalam perkataan Bangalore cari kedudukan watak a.

Kod di bawah ini akan melaksanakan tugas untuk kita.

Kod:

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

Sekarang jalankan kod VBA yang diberikan di atas menggunakan Kunci F5 atau anda juga boleh menjalankan kod ini secara manual seperti yang ditunjukkan dalam tangkapan skrin yang diberikan di bawah.

Pengeluaran:

Contoh # 2

Sekarang dalam kata Bangalore cari kedudukan watak "a" dari posisi ketiga.

Kod di bawah akan melaksanakan tugas untuk kita.

Kod:

 Sub Instr_Example2 () Dim i As Varian i = InStr (3, "Bangalore", "a") MsgBox i End Sub 

Untuk menjalankan kod yang diberikan di atas, anda boleh menggunakan kekunci F5 atau anda juga dapat menjalankan kod ini secara manual seperti yang ditunjukkan dalam tangkapan skrin yang diberikan di bawah.

Pengeluaran:

Sekarang pada gambar di atas, perhatikan perbezaan dari kod sebelumnya. Oleh kerana kita telah menyebut kedudukan awal watak sebagai 3 maka ia mengabaikan watak pertama "a" pada kedudukan ke-2.

Contoh # 3

Sekarang kita akan melihat carian sensitif kes. Dalam kata Bangalore cari huruf "A".

Untuk ini, kita perlu memberikan argumen perbandingan sebagai vbBinaryCompare.

Kod:

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

Sekarang jalankan, kod ini menggunakan Kunci F5 atau anda juga boleh menjalankan kod ini secara manual.

Pengeluaran:

Oleh kerana kami telah memberikan argumen perbandingan sebagai fungsi vbBinaryCompare Instr mengembalikan hasilnya sebagai sifar kerana tidak ada huruf besar "A" yang ada.

Contoh # 4

Sekarang kita akan melihat satu lagi carian sensitif kes. Dalam kata Bangalore cari huruf "A". Contoh sebelumnya mengembalikan hasilnya sebagai sifar.

Untuk mengatasi pendekatan sensitif kes di sini, kita perlu memberikan argumen perbandingan sebagai vbTextCompare.

Kod:

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

Sekarang Jalankan, kod ini menggunakan Kunci F5 atau anda juga boleh menjalankan kod ini secara manual.

Pengeluaran:

Contoh # 5

Sekarang kita akan melihat tahap tahap instrumen yang maju. Sekiranya anda mempunyai banyak helaian yang mempunyai nama yang kurang lebih serupa dan anda ingin menyembunyikan semua helaian itu sekaligus, kami boleh menggunakan kod di bawah untuk menyembunyikan helaian tertentu.

Sebagai contoh, saya mempunyai 5 helaian bernama Ringkasan 1, Ringkasan 2, Ringkasan 3, Ringkasan 4, dan Lembaran Data.

Sekarang saya ingin menyembunyikan semua helaian yang mempunyai kata "Ringkasan". Gunakan kod di bawah untuk menyembunyikan semua helaian yang mempunyai kata Ringkasan dalam namanya.

Kod:

 Sub To_Hide_Specific_Sheet () Dim Ws Sebagai Lembaran Kerja Untuk Setiap Ws Dalam ActiveWorkbook.Wheets Works If InStr (Ws.Name, "Summary")> 0 Kemudian Ws.Visible = xlSheetVeryHidden End If Fungsi InStr Ws seterusnya mencari perkataan atau frasa dalam nama helaian 'Sekiranya ia dijumpai maka ia akan disembunyikan End Sub 

Sekarang Jalankan, kod ini menggunakan Kunci F5 atau anda juga boleh menjalankan kod ini secara manual dan melihat Hasilnya.

Begitu juga untuk membongkar semua helaian tersebut, gunakan kod di bawah.

Kod:

 Sub To_UnHide_Specific_Sheet () Dim Ws Sebagai Lembaran Kerja Untuk Setiap Ws dalam ActiveWorkbook.Wheets Works If InStr (Ws.Name, "Summary")> 0 Kemudian Ws.Visible = xlSheetVisible End If Next Ws 'InStr fungsi mencari kata atau frasa dalam nama lembaran 'Sekiranya ia dijumpai maka ia akan disembunyikan End Sub 

Sekarang Jalankan, kod ini menggunakan Kunci F5 atau anda juga boleh menjalankan kod ini secara manual dan melihat Hasilnya.

Perkara yang Perlu Diingat

  • Instr adalah fungsi peka huruf besar kecil. Untuk menghilangkan masalah sensitif kes ini, anda perlu memberikan 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.