Cara Menggunakan Fungsi InStr di VBA (3 Contoh Mudah)

  • Bagikan Ini
Hugh West

Saat bekerja dengan kode Excel VBA, kami menemukan beberapa fungsi bawaan yang mengubah tugas kompleks menjadi kode satu baris kecil. InStr adalah fungsi yang tersedia di Excel VBA yang mencari string tertentu dalam string lain yang diberikan mulai dari posisi tertentu. Hari ini saya akan menunjukkan bagaimana Anda dapat menggunakan fungsi InStr berfungsi di VBA untuk mencari string tertentu dalam string lain yang diberikan.

Unduh Buku Kerja Praktik

Fungsi InStr.xlsm

Pengantar Fungsi VBA InStr

  • Ringkasan

Mencari string tertentu di dalam string yang diberikan, mulai dari posisi yang diberikan. Jika menemukan kecocokan, mengembalikan posisi dalam string yang diberikan dari mana kecocokan dimulai.

  • Sintaksis

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

  • Argumen
ARGUMEN PERSYARATAN KETERANGAN

[mulai] Opsional Posisi dari mana ia akan mulai mencari. Standarnya adalah 1.
string1 Diperlukan String yang di dalamnya mencari string yang diberikan.
string2 Diperlukan String yang dicari dalam string yang diberikan.
[bandingkan] Opsional Nilai numerik antara {-1,0,1,2} yang menentukan jenis perbandingan. Defaultnya adalah -1 (vbGunakanPerbandinganOpsi). Jika pernyataan Opsi Perbandingan tidak ditentukan, lakukan Perbandingan Biner.

Catatan:

  • Meskipun [mulai] argumen dan [bandingkan] adalah opsional, Anda memerlukan [mulai] jika Anda menentukan argumen [bandingkan] Jika tidak, maka akan memunculkan kesalahan.
  • Jika salah satu atau kedua dari [mulai] argumen dan [bandingkan] argumen adalah Null Anda akan menghadapi kesalahan.
  • Keempat nilai yang ditentukan dalam [bandingkan] argumen melakukan empat jenis perbandingan yang berbeda, seperti yang disebutkan di bawah ini:
NILAI KONSTAN KETERANGAN

-1 vbGunakanPilihanBandingkan Melakukan perbandingan yang ditentukan dalam pernyataan Option Compare.
0 vbBBinaryCompare Melakukan perbandingan Biner.
1 vbTextCompare Melakukan perbandingan teks.
2 vbDatabaseCompare Melakukan perbandingan berdasarkan database Anda.
  • Opsi Bandingkan adalah pernyataan yang disediakan sebelum kode VBA utama dimulai. Ini menentukan apakah kode akan mencari Perbandingan Biner atau Perbandingan Teks saat diperlukan.

Opsi Bandingkan Teks

    • Secara sederhana , Perbandingan Biner berarti perbandingan case-sensitive.
    • Secara sederhana , Perbandingan Teks berarti perbandingan case-insensitive.
  • Nilai Pengembalian
    • Mengembalikan posisi di dalam string1 dari mana string2 dimulai.
    • Dalam kasus string2 tidak ditemukan di dalam string1 dimulai dari mulai posisi, mengembalikan 0.
    • Jika string1 adalah nol-panjang, mengembalikan 0.
    • Jika string2 memiliki panjang nol, mengembalikan argumen mulai .
    • Dan akhirnya, jika salah satu dari string1 atau string2 adalah Null , mengembalikan kesalahan.

3 Contoh Mudah Menggunakan Fungsi InStr VBA

Dalam bagian ini, kita akan melihat tiga contoh mudah penerapan VBA InStr di Excel. Mari kita lihat contoh pertama dari fungsi InStr berfungsi dalam kode VBA.

1. Memutuskan Apakah Alamat Adalah Alamat Email atau Bukan dengan Menggunakan Fungsi VBA InStr

Di sini, kami telah mengambil satu set data yang berisi beberapa alamat kontak pelanggan. Tujuan kami di sini adalah untuk mengidentifikasi apakah alamat-alamat tersebut adalah alamat email atau bukan.

Sekarang kita akan mengembangkan kode VBA dengan menggunakan InStr untuk mengidentifikasi apakah itu Alamat Email atau bukan. Untuk melakukan itu, ikuti langkah-langkah di bawah ini.

Langkah-langkah:

  • Pada awalnya, pergi ke Pengembang tab dan pilih Visual Basic ( Atau tekan Alt+F11) untuk membuka VBA jendela.

  • Kemudian, pada VBA jendela, pergi ke Sisipkan> Modul .

  • Setelah itu, pada modul, tempelkan kode berikut:
 Fungsi KEPUTUSAN(string1 As String) Dim Posisi As Integer Posisi = InStr(1, string1, "@", 0) If Posisi = 0 Then KEPUTUSAN = "Bukan Email" Else KEPUTUSAN = "Email" End If End Function 

  • Terlebih lagi, kita telah menciptakan fungsi yang disebut KEPUTUSAN Ini memutuskan apakah suatu alamat adalah alamat email atau bukan. Mari kita terapkan fungsi tersebut ke kumpulan data yang kita miliki.
  • Pada sel C5 , tuliskan rumus berikut dan kemudian isi otomatis sisa sel menggunakan Isi Gagang .
=KEPUTUSAN (B5)

  • Seperti yang bisa kita lihat, kami telah mengidentifikasi setiap alamat apakah itu alamat email atau bukan.

🎓 Bagaimana Cara Kerja Kode?

  • Fungsi KEPUTUSAN (string1 Sebagai String)

Pertama, ini menciptakan fungsi yang disebut KEPUTUSAN dengan argumen string bernama string1 .

  • Dim Posisi Sebagai Bilangan bulat

Ini mendeklarasikan variabel integer bernama Posisi .

  • Posisi = InStr(1, string1, "@", 0)

Ini menetapkan nilai dari Posisi variabel sebagai output dari InStr dengan argumen 1, string1, "@" dan 0 Singkatnya, ini menetapkan posisi dalam alamat di mana terdapat sebuah "@" .

  • If Posisi = 0 Then KEPUTUSAN = "Bukan Email"

Ini menetapkan output dari KEPUTUSAN berfungsi sebagai "Bukan Email" , jika Posisi variabel adalah 0 itu berarti, tidak ada "@" di alamat.

(Ingat jika ada string yang tidak ditemukan di dalam string yang diberikan, maka InStr fungsi mengembalikan 0 ).

  • Lain-lain KEPUTUSAN = "Email"

Ini menetapkan output dari KEPUTUSAN berfungsi sebagai "Email" jika ada "@" di alamat tersebut. Dengan demikian alamat-alamat di mana ada "@" dikategorikan sebagai Email dan sisanya dikategorikan sebagai "Bukan Email" .

Bacaan Serupa

  • Cara Menggunakan fungsi VBA UCASE di Excel (4 Contoh)
  • Gunakan Fungsi MsgBox di Excel VBA (Panduan Lengkap)
  • Cara menggunakan fungsi VBA SPLIT di Excel (5 Contoh)
  • Gunakan Fungsi LCase dalam VBA di Excel (Dengan 4 Contoh)
  • Cara Menggunakan Fungsi Fix di Excel VBA (4 Contoh)

2. Memanfaatkan Fungsi InStr VBA untuk Mengekstrak Ekstensi dari Beberapa Alamat Email

Di sini, kami memiliki daftar beberapa Alamat Email dari beberapa pelanggan. Kali ini kami akan mengekstrak ekstensi alamat email seperti apakah mereka memiliki gmail.com atau yahoo.com .

Untuk melakukan itu, ikuti langkah-langkah di bawah ini.

Langkah-langkah:

  • Untuk memulainya, seperti metode sebelumnya, buka VBA modul dan tempelkan kode berikut ini di jendela.
 Fungsi EKSTENSI(Email As String) Dim Posisi As Integer Posisi = InStr(1, Email, "@", 0) EKSTENSI = Right(Email, (Len(Email) - Posisi)) End Function 

  • Selain itu, kita telah menciptakan fungsi yang disebut PERPANJANGAN Ini mengekstrak ekstensi alamat email apa pun.
  • Selanjutnya, mari kita terapkan fungsi ini ke kumpulan data yang kita miliki. Pertama, masukkan rumus ini pada cell C5 dan kemudian klik dua kali pada Isi Gagang .
= EKSTENSI (B5)

  • Terakhir, kita dapat melihat bahwa kita telah berhasil mengekstrak Ekstensi dari semua Email.

🎓 Bagaimana Cara Kerja Kode?

  • Fungsi EKSTENSI (Email Sebagai String)

Ini menciptakan fungsi baru yang disebut PERPANJANGAN , dengan argumen string bernama Email .

  • Dim Posisi Sebagai Bilangan bulat

Bagian ini mendeklarasikan variabel integer bernama Posisi.

  • Posisi = InStr(1, Email, "@", 0)

Ini menetapkan nilai dari Posisi variabel sebagai output dari InStr dengan argumen 1, Email, "@" dan 0 Singkatnya, hal ini menetapkan posisi di dalam Email di mana ada "@" .

  • EKSTENSI = Kanan(Email, (Len(Email) - Posisi))

Bagian ini menetapkan output dari PERPANJANGAN berfungsi sebagai karakter setelah simbol "@" Ini adalah perpanjangan yang diperlukan dari Email .

3. Mengekstrak Nama Depan atau Belakang dari sebuah nama dengan Menggunakan Fungsi VBA InStr

Terakhir, kita akan melakukan tugas yang unik dan berbeda. Kali ini kita memiliki nama-nama beberapa karyawan sebuah perusahaan. Dan kita akan mencoba membuat fungsi untuk mengekstrak nama depan atau nama belakang karyawan.

Untuk melakukan itu, ikuti langkah-langkah di bawah ini.

Langkah-langkah:

  • Pertama, mirip dengan metode 1 , tempelkan kode di bawah ini dalam modul baru di jendela VBA.
 Function SHORTNAME(Nama As String, First_or_Last As Integer) Dim Break As Integer Break = InStr(1, Nama, " ", 0) If First_or_Last = -1 Then SHORTNAME = Left(Nama, Break - 1) Else SHORTNAME = Right(Nama, Len(Nama) - Break) End If End Function 

  • Di sini, kita telah menciptakan fungsi yang disebut SHORTNAME yang mengekstrak nama depan atau nama belakang dari sebuah nama. Mari kita terapkan rumus ini ke kumpulan data kita.
  • Pada awalnya, untuk mengekstrak nama depan, tuliskan rumus di bawah ini di sel C5 .
=NAMA PENDEK(B5,-1)

  • Terakhir, untuk mengekstrak nama belakang, kita menuliskan rumus berikut dalam D5 :
=NAMA PENDEK(B5,1)

  • Setelah itu, jika kita mengisi secara otomatis sisa sel dengan Isi Handler kita akan melihat hasil yang kita inginkan.

🎓 Bagaimana Cara Kerja Kode?

  • Fungsi SHORTNAME (Nama Sebagai String, First_or_Last Sebagai Integer)

Ini menciptakan fungsi baru yang disebut SHORTNAME dengan satu argumen String bernama Nama dan satu Argumen Integer bernama Pertama_atau_Terakhir .

  • Dim Istirahat Sebagai Bilangan Bulat

Bagian ini mendeklarasikan variabel integer baru bernama Istirahat .

  • Break = InStr(1, Nama, " ", 0)

Ini menetapkan nilai dari Istirahat variabel sebagai output dari InStr dengan argumen 1, Nama, " " dan 0 Singkatnya, hal ini menetapkan posisi di dalam Nama di mana ada spasi (" ").

  • If First_or_Last = -1 Then SHORTNAME = Left(Nama, Break - 1)

Baris ini menetapkan output dari SHORTNAME berfungsi sebagai karakter sebelum ruang , jika Pertama_atau_Terakhir argumen adalah -1. Ini adalah nama pertama.

  • SHORTNAME = Right(Nama, Len(Nama) - Break)

Bagian ini menetapkan output dari SHORTNAME berfungsi sebagai karakter setelah ruang , jika Pertama_atau_Terakhir argumen adalah 1. Ini adalah nama belakang.

Kesimpulan

Dengan cara ini, Anda dapat menulis kode VBA dengan InStr yang menemukan posisi string tertentu dalam string lain yang diberikan, dan kemudian Anda dapat membuat fungsi Anda sendiri untuk berbagai kegunaan. Selanjutnya, jika Anda memiliki pertanyaan, jangan ragu untuk bertanya kepada kami.

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.