Cara Mencari Rentetan dengan VBA dalam Excel (8 Contoh)

  • Berkongsi Ini
Hugh West

Melaksanakan VBA ialah kaedah yang paling berkesan, paling cepat dan paling selamat untuk menjalankan sebarang operasi dalam Excel. Dalam artikel ini, kami akan menunjukkan kepada anda cara mencari rentetan tertentu dalam rentetan lain yang diberikan menggunakan VBA dalam Excel.

Muat Turun Templat Amalan

Anda boleh memuat turun templat Excel amalan percuma dari sini.

VBA untuk Cari dalam String.xlsm

Fungsi InStr

Microsoft Excel mempunyai fungsi terbina dalam yang dipanggil Fungsi InStr untuk mencari kedudukan rentetan tertentu dalam Rentetan tertentu.

Sintaks Generik:

InStr([start], string1, string2, [compare])

Di sini,

Argumen Diperlukan/ Pilihan Definisi
mulakan Pilihan Kedudukan permulaan carian.
  • Secara lalai, fungsi InStr mengira kedudukan aksara dengan mengira dari 1, bukan dari kedudukan mula. Jadi, anda boleh biarkan ini kosong jika anda mahu.
rentetan1 Diperlukan Rentetan untuk mencari dalam, Rentetan Utama.
rentetan2 Diperlukan Rentetan untuk mencari dalam rentetan utama .
bandingkan Pilihan Fungsi InStr adalah peka huruf besar-kecil secara lalai. Tetapi jika anda ingin menjalankan case insensitive InStr , maka anda boleh lulus hujah di sini untuk melakukan perbandingan tertentu. Hujah ini boleh menjadi seperti berikutnilai,
  • vbBinaryCompare -> melakukan perbandingan binari, mengembalikan nilai 0
  • vbTextCompare -> melakukan perbandingan teks, mengembalikan nilai 1
  • vbDatabaseCompare -> melakukan perbandingan pangkalan data, mengembalikan nilai 2

Secara lalai, InStr mengambil vbBinaryCompare sebagai argumen bandingkan.

8 Contoh Mudah untuk Mencari Kedudukan Rentetan Khusus dalam Rentetan Diberi Menggunakan VBA

Mari lihat beberapa contoh mudah untuk mendapatkan kedudukan rentetan tertentu dalam rentetan yang diberikan menggunakan VBA .

1. VBA untuk Mencari Kedudukan Teks dalam Rentetan

Di bawah ialah contoh InStr untuk mencari kedudukan teks dalam rentetan.

  • Tekan Alt + F11 pada papan kekunci anda atau pergi ke tab Pembangun -> Visual Basic untuk membuka Visual Basic Editor .

  • Dalam tetingkap kod timbul, dari bar menu , klik Sisipkan -> Modul .

  • Sekarang dalam tetingkap kod, tulis program InStr mudah di dalam Sub VBA Prosedur (lihat di bawah).
2514

Kod anda kini sedia untuk dijalankan.

  • Tekan F5 pada papan kekunci anda atau daripada bar menu pilih Jalankan -> Jalankan Sub/Borang Pengguna . Anda juga boleh hanya mengklik pada ikon Main kecil dalam bar submenu untuk menjalankan makro.

Anda akan melihat bahawa kotak mesej pop timbul akan memberi anda nombormengisytiharkan kedudukan teks yang anda mahu semak.

Penjelasan:

Rentetan utama kami, “ Kebahagiaan ialah pilihan ” ialah ayat 21 huruf (dengan ruang) dan kami ingin mencari kedudukan teks “ pilihan ” dalam rentetan itu. Teks " pilihan " bermula dari kedudukan ke-16 rentetan utama, oleh itu kami mendapat nombor 16 sebagai output kami dalam kotak mesej.

2. VBA untuk Mencari Teks daripada Kedudukan Tertentu dalam Rentetan

Sekarang mari kita ketahui apa yang akan berlaku jika kita ingin mendapatkan kedudukan daripada nombor tertentu.

  • Sama seperti sebelum ini, buka Editor Asas Visual daripada tab Pembangun dan Sisipkan Modul dalam tetingkap kod.
  • Dalam tetingkap kod, tulis program InStr ringkas yang ditunjukkan di atas dan hantar nilai dalam hujah permulaan mengikut kedudukan yang anda mahu mengira teks anda.
2242

  • Seterusnya, Jalankan kod.

Anda akan melihat bahawa kotak mesej pop timbul akan memberi anda nombor yang mengisytiharkan kedudukan teks bermula dari kedudukan tertentu yang anda mahu semak.

Penjelasan:

Seperti yang telah kita ketahui (dari perbincangan fasa 1) bahawa teks " pilihan " bermula dari kedudukan 16 , jadi kami memasukkan dua " pilihan ” dalam rentetan utama dan tetapkan 17 sebagaiParameter pertama untuk melangkau " pilihan " yang pertama. Jadi, kami Jalankan makro di atas dan ia menunjukkan kepada kami nombor kedudukan 27 yang betul-betul nombor kedudukan saat pilihan ” dalam rentetan yang diberikan.

3. VBA untuk Cari Teks dengan Fungsi InStr tidak peka huruf besar dan kecil dalam String

Dari pengenalan fungsi InStr anda sudah tahu bahawa secara lalai, fungsi InStr adalah sensitif huruf besar. Mari kita ketahui dengan contoh.

Lihat kod VBA berikut, di mana kami ingin mencari kedudukan perkataan “ Choice ” dengan kapital “C” dalam rentetan “ Kebahagiaan ialah pilihan ” di mana pilihan ditulis dengan kecil “c” .

  • Jalankan kod dan cari 0 sebagai output kami.

Ini kerana fungsi InStr merawat modal “C” dan kecil “c” secara berbeza. Jadi ia mencari perkataan “ Choice ” dalam rentetan dan tidak mendapat sebarang padanan, jadi dikembalikan 0 .

  • Untuk menjadikan fungsi InStr tidak peka huruf besar-kecil , tetapkan argumen bandingkan kepada vbTextCompare (lihat di bawah).
5360

  • Jalankan kod.

Anda akan mendapat kedudukan teks daripada rentetan, sama ada teks ditulis dalam huruf besar atau huruf kecil .

4. VBA untuk Mencari Teks dari Kanan Rentetan

Sehingga kini InStr fungsi hanya memberikan kami kedudukan dari sebelah kiri rentetan. Tetapi bagaimana jika anda ingin mencari kedudukan teks dari sebelah kanan rentetan.

Fungsi InStrRev mencari dari sebelah kanan. Fungsi InStrRev berfungsi hampir sama dengan fungsi InStr dan ia akan menemui anda kedudukan teks dari sebelah kanan rentetan.

Lihat contoh berikut untuk memahami perbezaannya.

  • Jika kita menjalankan kod berikut dengan fungsi InStr maka,

ia memberi kita kedudukan ( 16 ) teks pertama “ pilihan ”.

  • Tetapi jika kita menjalankan kod yang sama dengan Fungsi InStrRev maka,

ia memberi kita kedudukan ( 27 ) daripada teks terakhir “ pilihan ”.

Bacaan Serupa:

  • Cari Seterusnya Menggunakan VBA dalam Excel (2 Contoh)
  • Cara Mencari dan Mengganti Menggunakan VBA (11 Cara)
  • Cari Padanan Tepat Menggunakan VBA dalam Excel (5 Cara)

5. VBA untuk Mencari Kedudukan Aksara dalam Rentetan

Anda juga boleh mencari kedudukan aksara tertentu dalam rentetan dengan cara yang sama seperti anda menemui teks.

  • Salin kod berikut ke dalam tetingkap kod VBA anda
4637

  • Dan Jalankan makro.

" e " pertama dalam rentetan kami adalah padakedudukan nombor 7 .

6. VBA untuk Cari Subrentetan dalam Rentetan

Di sini kita akan belajar bagaimana untuk mencari sama ada rentetan mengandungi subrentetan atau tidak.

Untuk mendapatkannya, kita ada untuk menjalankan IF Statement dalam kod kami.

  • Sama seperti sebelum ini, buka Visual Basic Editor daripada tab Developer dan Sisipkan Modul dalam tetingkap kod.
  • Dalam tetingkap kod, salin kod berikut dan tampalkannya.
6553

Anda kod kini sedia untuk dijalankan.

  • Jalankan makro.

Jika rentetan anda mengandungi subrentetan maka anda akan mendapat padanan ditemui , jika tidak, ia akan mengembalikan tiada padanan ditemui. Dalam contoh kami, kami ingin mengetahui sama ada rentetan utama kami " Kebahagiaan ialah pilihan " mengandungi perkataan " pilihan " atau bukan. Seperti yang berlaku, kami mendapat hasil Padanan ditemui .

7. VBA untuk Mencari Rentetan dalam Julat Sel

Anda boleh mencari teks tertentu dalam julat sel rentetan dan mengembalikan rentetan tertentu.

Lihat contoh berikut di mana kita akan cari “ Dr. ” dan apabila ada perlawanan ia akan mengembalikan “ Doktor ”.

  • Di bawah ialah kod untuk mendapatkan hasil yang dibincangkan di atas,
7554

  • Jalankan kod dan hasilnya ditunjukkan di bawah

  • Anda boleh mengubah suai makro mengikut keperluan anda. Sebagai contoh, jika anda mahuuntuk mencari “ Prof. ” dalam mana-mana sel rentetan dan dapatkan “ Profesor ” sebagai pulangan, kemudian hantarkan “ Prof. ” sebagai nilai bukannya “ Dr .” dalam baris ke-4 makro dan " Profesor " dan bukannya " Doktor " dalam baris ke-5 makro dan tentukan nombor julat sel dengan sewajarnya.

8. VBA untuk Mencari Rentetan dalam Sel

Anda juga boleh mencari teks tertentu dalam sel tunggal rentetan dan mengembalikan rentetan tertentu.

  • Salin kod berikut dan tampalkannya ke dalam tetingkap kod.
6481

Ia akan mencari “ Dr. ” dalam Sel B5 dan jika ia menjumpai padanan maka kembalikan “ Doktor ” dalam Sel C5 .

  • Anda boleh mengubah suai makro mengikut keperluan anda. Contohnya, jika anda ingin mencari “ Prof. ” dalam mana-mana sel rentetan dan dapatkan “ Profesor ” sebagai balasan, kemudian hanya berikan “ Prof. ” sebagai nilai dan bukannya “ Dr .” dalam baris ke-2 makro dan " Profesor " dan bukannya " Doktor " dalam baris ke-3 makro dan tentukan nombor rujukan sel dengan sewajarnya.

Kesimpulan

Artikel ini menunjukkan kepada anda cara mencari teks tertentu dalam rentetan dalam Excel menggunakan makro VBA. Saya harap artikel ini banyak memberi manfaat kepada anda. Jangan ragu untuk bertanya apa-apa soalan mengenaitopik.

Hugh West ialah jurulatih dan penganalisis Excel yang sangat berpengalaman dengan lebih 10 tahun pengalaman dalam industri. Beliau memiliki Ijazah Sarjana Muda Perakaunan dan Kewangan serta Ijazah Sarjana dalam Pentadbiran Perniagaan. Hugh mempunyai minat untuk mengajar dan telah membangunkan pendekatan pengajaran yang unik yang mudah diikuti dan difahami. Pengetahuan pakar Excel beliau telah membantu beribu-ribu pelajar dan profesional di seluruh dunia meningkatkan kemahiran mereka dan cemerlang dalam kerjaya mereka. Melalui blognya, Hugh berkongsi pengetahuannya dengan dunia, menawarkan tutorial Excel percuma dan latihan dalam talian untuk membantu individu dan perniagaan mencapai potensi penuh mereka.