VBA InStr - 5 Contoh teratas untuk menggunakan Fungsi InStr Excel VBA

Isi kandungan

Fungsi Excel VBA InStr

Instr dalam VBA digunakan untuk mengetahui posisi substring tertentu dalam string setelah kami menentukan kaedah perbandingan dengan fungsi, ada empat kaedah perbandingan yang berbeza untuk fungsi ini, Instr adalah fungsi string tetapi output yang dikembalikan oleh fungsi tersebut 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 ganda 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 gunakan InStr.

Sintaks

Ini 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 mahu untuk mencari watak "a" dalam perkataan "Bangalore" dari 3 rd kedudukan, kita perlu memberitahu fungsi Instr bermula kedudukan as 3. Maka dari 3 rd kedudukan, watak "a" adalah pada kedudukan ke- 5 . Sekiranya anda mengabaikan parameter ini, nilai lalai adalah 1.
  • Rentetan 1: Ini adalah rentetan 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 huruf String 1. Contohnya, jika kita mencari "a" dalam perkataan "Bangalore," hasilnya Instr akan kembali 2, dan jika mencari "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 sensitif huruf 2 dalam rentetan 1. Contohnya, jika kita mencari "a" dalam kata "Bangalore," hasilnya Instr akan kembali 2, dan jika anda mencari " A " dalam kata " Bangalore, " Instr juga akan mengembalikan 2. 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

Contoh # 1

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

Kod di bawah 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 nyatakan kedudukan permulaan watak sebagai 3, ia diabaikan aksara pertama "a" di 2 nd kedudukan.

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:

Since we have supplied the compare argument as vbBinaryCompare Instr function returned the result as zero because there are no uppercase letter “A” exists.

Example #4

Now we will see one more case sensitive search. In the word Bangalore, find the letter “A.” The previous example returned the result as zero.

In order to overcome the case sensitive approach here, we need to supply the compare argument as vbTextCompare.

Code:

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

Now Run, this code using the F5 Key, or you can also run this code manually.

Output:

Example #5

Now we will see the advanced level of Instr function. If you have many sheets that have a more or less similar name and you want to hide all those sheets at once, we can use the below code to hide a specific sheet.

For example, I have 5 sheets named Summary 1, Summary 2, Summary 3, Summary 4, and Data Sheet.

Now I want to hide all those sheets which have the word “Summary.” Use the below code to hide all the sheets which have the word Summary in its name.

Code:

Sub To_Hide_Specific_Sheet() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If InStr(Ws.Name, "Summary")> 0 Then Ws.Visible = xlSheetVeryHidden End If Next Ws 'InStr function looks for word or phrase in the sheet name 'If it finds then it will be hidden End Sub

Now Run, this code using the F5 Key, or you can also run this code manually and see the Output.

Similarly, in order to unhide all those sheets, use the below code.

Code:

Sub To_UnHide_Specific_Sheet() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If InStr(Ws.Name, "Summary")> 0 Then Ws.Visible = xlSheetVisible End If Next Ws 'InStr function looks for word or phrase in the sheet name 'If it finds then it will be hidden End Sub

Now Run, this code using the F5 Key, or you can also run this code manually and see the Output.

Things to Remember

  • Instr is a case sensitive function. In order to eliminate this case sensitive issue, you need to supply the (compare) argument as.
  • 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 adalah fungsi VBA, sehingga anda tidak dapat menggunakannya dalam lembaran kerja excel seperti formula terbina dalam yang lain.
  • Sekiranya fungsi tidak dapat menemui String 2, hasilnya akan menjadi sifar.

Artikel menarik...