Cara Menemukan String dengan VBA di Excel (8 Contoh)

  • Bagikan Ini
Hugh West

Menerapkan VBA adalah metode yang paling efektif, tercepat, dan teraman untuk menjalankan operasi apa pun di Excel. Pada artikel ini, kami akan menunjukkan kepada Anda cara menemukan string tertentu dalam string lain yang diberikan menggunakan VBA di Excel.

Unduh Templat Praktik

Anda bisa mengunduh templat Excel latihan gratis dari sini.

VBA untuk Menemukan di String.xlsm

Fungsi InStr

Microsoft Excel memiliki fungsi built-in yang disebut Fungsi InStr untuk menemukan posisi string tertentu dalam String yang diberikan.

Sintaksis Generik:

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

Di sini,

Argumen Wajib/ Opsional Definisi
mulai Opsional Posisi awal pencarian.
  • Secara default, file InStr menghitung posisi karakter dengan menghitung dari 1, bukan dari posisi awal. Jadi, Anda dapat mengosongkan ini jika Anda menginginkannya.
string1 Diperlukan String yang akan dicari, Primary String.
string2 Diperlukan String yang akan dicari dalam string primer.
bandingkan Opsional The InStr adalah case-sensitive secara default. Tetapi jika Anda ingin menjalankan fungsi case insensitive InStr maka Anda dapat meneruskan argumen di sini untuk melakukan perbandingan tertentu. Argumen ini dapat berupa nilai berikut,
  • vbBBinaryCompare -> melakukan perbandingan biner, mengembalikan nilai 0
  • vbTextCompare -> melakukan perbandingan teks, mengembalikan nilai 1
  • vbDatabaseCompare -> melakukan perbandingan basis data, mengembalikan nilai 2

Secara default, InStr mengambil vbBBinaryCompare sebagai argumen pembanding.

8 Contoh Mudah untuk Menemukan Posisi String Tertentu dalam String yang Diberikan Menggunakan VBA

Mari kita lihat beberapa contoh sederhana untuk mendapatkan posisi string tertentu dalam string yang diberikan menggunakan VBA .

1. VBA untuk Menemukan Posisi Teks dalam String

Di bawah ini adalah contoh InStr untuk menemukan posisi teks dalam sebuah string.

  • Tekan Alt + F11 pada keyboard Anda atau buka tab Pengembang -> Visual Basic untuk membuka Editor Visual Basic .

  • Di jendela kode pop-up, dari bilah menu, klik Sisipkan -> Modul .

  • Sekarang di jendela kode, tuliskan InStr program di dalam Sub Prosedur VBA (lihat di bawah).
 Sub INSTR_Contoh() MsgBox InStr("Kebahagiaan adalah pilihan", "pilihan") End Sub 

Kode Anda sekarang siap untuk dijalankan.

  • Tekan F5 pada keyboard Anda atau dari bilah menu pilih Jalankan -> Jalankan Sub/UserForm Anda juga bisa mengklik pada ikon Putar kecil di bilah sub-menu untuk menjalankan makro.

Anda akan melihat bahwa kotak pesan pop-up akan memberi Anda nomor yang menyatakan posisi dari teks yang ingin Anda periksa.

Penjelasan:

String utama kita, " Kebahagiaan adalah sebuah pilihan " adalah kalimat 21 huruf (dengan spasi) dan kami ingin menemukan posisi teks " pilihan " dalam string itu. Teks " pilihan " dimulai dari posisi ke-16 dari string primer, maka kita mendapatkan nomor 16 sebagai output kita di kotak pesan.

2. VBA untuk Menemukan Teks dari Posisi Tertentu dalam String

Sekarang mari kita cari tahu apa yang akan terjadi jika kita ingin mendapatkan posisi dari angka tertentu.

  • Cara yang sama seperti sebelumnya, buka Editor Visual Basic dari Pengembang tab dan Sisipkan a Modul di jendela kode.
  • Di jendela kode, tulislah sebuah InStr program yang ditunjukkan di atas dan berikan nilai dalam argumen awal sesuai dengan posisi yang Anda inginkan untuk menghitung teks Anda.
 Sub INSTR_Contoh() MsgBox InStr(17, "Kebahagiaan adalah pilihan", "pilihan") End Sub 

  • Selanjutnya, Lari kode.

Anda akan melihat bahwa kotak pesan pop-up akan memberi Anda nomor yang menyatakan posisi dari teks mulai dari posisi tertentu yang ingin Anda periksa.

Penjelasan:

Seperti yang sudah kita ketahui (dari diskusi fase 1) bahwa teks " pilihan " dimulai dari posisi 16 , jadi kami menyisipkan dua " pilihan " dalam string primer dan mengatur 17 sebagai parameter pertama kita untuk melewatkan " pilihan ". Jadi, kami Lari makro di atas dan itu menunjukkan kepada kita nomor posisi 27 yang persis nomor posisi dari kedua " pilihan " dalam string yang diberikan.

3. VBA untuk Menemukan Teks dengan Fungsi InStr yang tidak peka huruf besar-kecil dalam String

Dari pengenalan InStr Anda sudah mengetahui bahwa secara default, fungsi InStr Mari kita cari tahu itu dengan sebuah contoh.

Lihat yang berikut ini VBA kode, di mana kita ingin menemukan posisi kata " Pilihan " dengan modal "C" dalam string " Kebahagiaan adalah sebuah pilihan " di mana pilihan ditulis dengan "c" kecil .

  • Lari kode dan temukan 0 sebagai output kami.

Itu karena InStr fungsi memperlakukan modal "C" dan "c" kecil berbeda. Jadi ia mencari kata " Pilihan " dalam string dan tidak mendapatkan kecocokan apa pun, jadi dikembalikan 0 .

  • Untuk membuat InStr fungsi tidak peka huruf besar-kecil , atur argumen bandingkan ke vbTextCompare (lihat di bawah).
 Sub INSTR_Contoh() MsgBox InStr(1, "Kebahagiaan adalah pilihan dan pilihan", "Pilihan", vbTextCompare) End Sub 

  • Lari kode.

Anda akan mendapatkan posisi teks dari string, apakah teks ditulis dalam huruf besar atau huruf kecil .

4. VBA untuk Menemukan Teks dari Kanan String

Sampai sekarang InStr hanya memberikan kita posisi dari sisi kiri string. Tetapi bagaimana jika Anda ingin menemukan posisi teks dari sisi kanan string.

Fungsi InStrRev mencari dari kanan. InStrRev bekerja sangat mirip dengan fungsi InStr fungsi dan itu akan menemukan posisi teks dari sisi kanan dari string.

Lihat contoh berikut ini untuk memahami perbedaannya.

  • Jika kita menjalankan kode berikut ini dengan InStr fungsi kemudian,

itu memberi kita posisi ( 16 ) dari teks pertama " pilihan ".

  • Tetapi jika kita menjalankan kode yang sama dengan InStrRev Fungsi kemudian,

itu memberi kita posisi ( 27 ) dari teks terakhir " pilihan ".

Bacaan serupa:

  • FindNext Menggunakan VBA di Excel (2 Contoh)
  • Cara Menemukan dan Mengganti Menggunakan VBA (11 Cara)
  • Temukan Pencocokan Tepat Menggunakan VBA di Excel (5 Cara)

5. VBA untuk Menemukan Posisi Karakter dalam String

Anda juga dapat menemukan posisi karakter tertentu dalam string dengan cara yang sama seperti Anda menemukan teks.

  • Salin kode berikut ini ke dalam VBA jendela kode
 Sub Cari_Karakter() Dim z As Long z = InStr("Kebahagiaan adalah pilihan", "e") MsgBox z End Sub 

  • Dan Lari makro.

Yang pertama " e " dalam string yang kita berikan ada di nomor 7 posisi.

6. VBA untuk Menemukan Substring dalam String

Di sini kita akan belajar bagaimana menemukan apakah sebuah string mengandung sebuah substring atau tidak.

Untuk mendapatkan itu, kita harus menjalankan JIKA Pernyataan dalam kode kita.

  • Cara yang sama seperti sebelumnya, buka Editor Visual Basic dari Pengembang tab dan Sisipkan a Modul di jendela kode.
  • Di jendela kode, salin kode berikut dan tempelkan.
 Public Sub FindSub() If InStr("Kebahagiaan adalah pilihan", "pilihan") = 0 Then MsgBox "Tidak ditemukan kecocokan" Else MsgBox "Kecocokan ditemukan" End If End Sub 

Kode Anda sekarang siap untuk dijalankan.

  • Lari makro.

Jika Anda string berisi substring maka Anda akan mendapatkan ditemukan kecocokan Dalam contoh kita, kita ingin mengetahui apakah string utama kita " Kebahagiaan adalah sebuah pilihan " mengandung kata " pilihan "atau tidak." Karena itu, kita mendapatkan Cocok ditemukan hasil.

7. VBA untuk Menemukan String dalam Rentang Sel

Anda dapat mencari teks tertentu dalam rentang sel string dan mengembalikan string tertentu.

Lihatlah contoh berikut ini di mana kita akan menemukan " Dr. " dan ketika ada kecocokan maka akan mengembalikan " Dokter ".

  • Di bawah ini adalah kode untuk mendapatkan hasil yang dibahas di atas,
 Sub Find_String_in_Range() Dim cell As Range For Each cell In Range("B5:B10") If InStr(cell.Value, "Dr.")> 0 Then cell.Offset(0, 1).Value = "Doctor" End If Next cell End Sub 

  • Lari kode dan hasilnya ditunjukkan di bawah ini

  • Anda bisa memodifikasi makro sesuai dengan kebutuhan Anda. Misalnya, jika Anda ingin menemukan " Prof. " di sel string mana pun, dan dapatkan " Profesor " sebagai pengembalian, lalu cukup melewatkan " Prof. " sebagai nilai, bukan " Dr. ." di baris ke-4 makro dan " Profesor " alih-alih " Dokter " di baris ke-5 makro dan tentukan nomor rentang sel yang sesuai.

8. VBA untuk Menemukan String dalam Sel

Anda juga bisa mencari teks tertentu dalam satu sel string dan mengembalikan string tertentu.

  • Salin kode berikut ini dan tempelkan ke jendela kode.
 Sub Find_String_in_Cell() If InStr(Range("B5").Value, "Dr.")> 0 Then Range("C5").Value = "Dokter" End If End Sub 

Ini akan mencari " Dr. " dalam Sel B5 dan jika menemukan kecocokan maka mengembalikan " Dokter " dalam Sel C5 .

  • Anda bisa memodifikasi makro sesuai dengan kebutuhan Anda. Misalnya, jika Anda ingin menemukan " Prof. " di sel string mana pun, dan dapatkan " Profesor " sebagai pengembalian, lalu cukup melewatkan " Prof. " sebagai nilai, bukan " Dr. ." di baris ke-2 makro dan " Profesor " alih-alih " Dokter " di baris ke-3 makro dan tentukan nomor referensi sel yang sesuai.

Kesimpulan

Artikel ini menunjukkan kepada Anda bagaimana menemukan teks tertentu dalam string di Excel menggunakan Makro VBA. Saya harap artikel ini sangat bermanfaat bagi Anda. Jangan ragu untuk mengajukan pertanyaan apa pun mengenai topik ini.

Hugh West adalah pelatih dan analis Excel yang sangat berpengalaman dengan pengalaman lebih dari 10 tahun di industri ini. Beliau meraih gelar Sarjana di bidang Akuntansi dan Keuangan dan gelar Master di bidang Administrasi Bisnis. Hugh memiliki hasrat untuk mengajar dan telah mengembangkan pendekatan pengajaran unik yang mudah diikuti dan dipahami. Pengetahuan ahlinya tentang Excel telah membantu ribuan siswa dan profesional di seluruh dunia meningkatkan keterampilan dan unggul dalam karier mereka. Melalui blognya, Hugh membagikan pengetahuannya kepada dunia, menawarkan tutorial Excel gratis dan pelatihan online untuk membantu individu dan bisnis mencapai potensi penuh mereka.