Cara Menggunakan Fungsi InStr dalam VBA (3 Contoh Mudah)

  • Berkongsi Ini
Hugh West

Semasa bekerja dengan kod Excel VBA, kami menemui beberapa fungsi terbina dalam yang menukar tugas yang kompleks kepada kod satu baris yang kecil. InStr ialah fungsi sedemikian yang tersedia dalam Excel VBA yang mencari rentetan tertentu dalam rentetan lain yang diberikan bermula dari kedudukan tertentu. Hari ini saya akan menunjukkan cara anda boleh menggunakan fungsi InStr dalam VBA untuk mencari rentetan tertentu dalam rentetan lain yang diberikan.

Muat Turun Buku Kerja Amalan

Fungsi InStr.xlsm

Pengenalan kepada Fungsi InStr VBA

  • Ringkasan

Mencari rentetan tertentu dalam rentetan tertentu, bermula dari kedudukan tertentu. Jika menemui padanan, mengembalikan kedudukan dalam rentetan yang diberikan dari tempat perlawanan bermula.

  • Sintaks

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

  • Argumen
HUJAH KEPERLUAN HURAIAN

[mula] Pilihan Kedudukan dari mana ia akan mula mencari. Lalai ialah 1.
rentetan1 Diperlukan Rentetan di mana ia mencari rentetan tertentu.
rentetan2 Diperlukan Rentetan yang dicarinya dalam rentetan tertentu.
[bandingkan] Pilihan Nilai berangka antara {-1,0,1,2} yang menentukan jenis perbandingan. Thelalai ialah -1 (vbUseCompareOption). Jika pernyataan Bandingkan Pilihan tidak dinyatakan, lakukan Perbandingan Perduaan.

Nota:

  • Walaupun argumen [start] dan argumen [compare] adalah pilihan, anda memerlukan argumen [start] jika anda menentukan argumen [compare] . Jika tidak, ia akan menimbulkan ralat.
  • Jika salah satu atau kedua-dua argumen [start] dan argumen [compare] ialah Null , anda akan menghadapi ralat.
  • Empat nilai yang ditentukan dalam argumen [compare] melakukan empat jenis perbandingan yang berbeza. Ia disebut di bawah:
NILAI MALAR DESCRIPTION

-1 vbUseCompareOption Melaksanakan perbandingan yang dinyatakan dalam pernyataan Option Compare.
0 vbBinaryCompare Melakukan perbandingan Binari.
1 vbTextCompare Melaksanakan perbandingan teks.
2 vbDatabaseCompare Melaksanakan perbandingan berdasarkan pangkalan data anda .
  • Option Compare pernyataan ialah pernyataan yang disediakan sebelum kod VBA utama bermula. Ia menentukan sama ada kod tersebut akan mencari Perbandingan Perduaan atau Perbandingan Teks apabila diperlukan.

Pilihan Teks Bandingkan

    • Dalam istilah mudah , Perbandingan Binari bermaksud peka huruf besar-kecilperbandingan.
    • Dalam istilah mudah , Perbandingan Teks bermaksud perbandingan tidak sensitif huruf besar dan kecil.
  • Nilai Pulangan
    • Mengembalikan kedudukan dalam rentetan1 dari mana rentetan2 bermula.
    • Sekiranya rentetan2 tidak ditemui dalam rentetan1 bermula dari kedudukan mula , mengembalikan 0.
    • Jika rentetan1 adalah panjang sifar, mengembalikan 0.
    • Jika rentetan2 adalah panjang sifar, mengembalikan argumen mula .
    • Dan akhirnya, jika mana-mana rentetan1 atau string2 ialah Null , mengembalikan ralat.

3 Contoh Mudah untuk Menggunakan Fungsi VBA InStr

In bahagian ini, kita akan melihat tiga contoh mudah untuk menggunakan fungsi VBA InStr dalam Excel. Mari lihat contoh pertama fungsi InStr dalam kod VBA.

1. Memutuskan Sama ada Alamat Adalah Alamat E-mel atau Bukan dengan Menggunakan Fungsi VBA InStr

Di sini, kami telah mengambil set data yang mengandungi beberapa alamat hubungan pelanggan. Matlamat kami di sini ialah untuk mengenal pasti sama ada alamat tersebut adalah alamat e-mel atau tidak.

Kini kami akan membangunkan kod VBA menggunakan fungsi InStr untuk mengenal pasti sama ada Alamat E-mel atau tidak. Untuk berbuat demikian, ikuti langkah di bawah.

Langkah:

  • Pada mulanya, pergi ke tab Pembangun dan pilih Visual Basic ( Atau tekan Alt+F11) untuk membuka VBA tetingkap.

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

  • Selepas itu, pada modul, tampal kod berikut:
9520

  • Selain itu, kami telah mencipta fungsi yang dipanggil KEPUTUSAN . Ia memutuskan sama ada alamat ialah alamat e-mel atau tidak. Mari kita gunakan fungsi pada set data yang kita ada.
  • Pada sel C5 , tulis formula berikut dan kemudian autoisi sel yang lain menggunakan Pengendalian Isi .
=DECISION(B5)

  • Seperti yang dapat kita lihat, kami telah mengenal pasti setiap alamat sama ada ia alamat e-mel atau tidak.

🎓 Bagaimana Kod Berfungsi?

  • Fungsi KEPUTUSAN(rentetan1 Sebagai Rentetan)

Pertama, ini mencipta fungsi yang dipanggil KEPUTUSAN dengan hujah rentetan bernama string1 .

  • Kedudukan Malap Sebagai Integer

Ia mengisytiharkan pembolehubah integer bernama Kedudukan .

  • Position = InStr(1, string1, “@”, 0)

Ini memberikan nilai Kedudukan pembolehubah sebagai output fungsi InStr dengan argumen 1, string1, “@” dan 0 . Ringkasnya, ini memberikan kedudukan dalam alamat yang terdapat “@” .

  • Jika Kedudukan = 0 Maka KEPUTUSAN = “Bukan E-mel”

Ia memberikan output fungsi DECISION sebagai “Bukan E-mel” , jika Kedudukan pembolehubah ialah 0 , ini bermakna, tiada “@” dalam alamat.

(Ingat jika sebarang rentetan tidak ditemui dalam rentetan yang diberikan, Fungsi InStr mengembalikan 0 ).

  • Else DECISION = “E-mel”

Ini memberikan output fungsi DECISION sebagai “E-mel” jika terdapat “@” dalam alamat. Oleh itu, alamat yang terdapat “@” dikategorikan sebagai E-mel dan selebihnya dikategorikan sebagai “Bukan E-mel” .

Bacaan Serupa

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

2. Menggunakan Fungsi VBA InStr untuk Mengekstrak Pelanjutan Beberapa Alamat E-mel

Di sini, kami mempunyai senarai beberapa Alamat E-mel sesetengah pelanggan. Kali ini kami akan mengekstrak sambungan alamat e-mel seperti sama ada mereka mempunyai gmail.com atau yahoo.com .

Untuk berbuat demikian, ikut langkah di bawah.

Langkah:

  • Sebagai permulaan, seperti kaedah sebelumnya, buka VBA<2 baharu> modul dan tampal kod berikut dalam tetingkap.
9612

  • Selain itu, kami telah mencipta fungsi yang dipanggil SAMBUNGAN . Ia mengekstrak sambungan mana-mana alamat e-mel.
  • Selain itu, mari gunakan fungsi ini pada set data yang kami ada. Mula-mula, masukkan formula ini pada sel C5 dan kemudian klik dua kali pada Pemegang Isi .
=EXTENSION(B5)

  • Akhir sekali, kita dapat melihat bahawa kita telah berjaya mengekstrak Sambungan semua E-mel.

🎓 Bagaimana Kod Berfungsi?

  • FUNGSI SAMBUNGAN(E-mel Sebagai Rentetan)

Ini mencipta fungsi baharu yang dipanggil SAMBUNGAN , dengan hujah rentetan bernama E-mel .

  • Kedudukan Malap Sebagai Integer

Bahagian ini mengisytiharkan pembolehubah integer bernama Kedudukan .

  • Kedudukan = InStr(1, E-mel, “@”, 0)

Ini memberikan nilai Letakkan pembolehubah sebagai output fungsi InStr dengan argumen 1, E-mel, “@” dan 0 . Ringkasnya, ini memberikan kedudukan dalam E-mel di mana terdapat “@” .

  • SAMBUNGAN = Kanan(E-mel, (Len (E-mel) – Kedudukan))

Bahagian ini memberikan output fungsi SAMBUNGAN sebagai aksara selepas simbol “@” . Ini ialah sambungan yang diperlukan untuk E-mel .

3. Mengeluarkan Nama Pertama atau Akhir daripada Nama dengan Menggunakan Fungsi VBA InStr

Akhir sekali, kami akan melaksanakan tugas yang berbeza secara unik. Kali ini kami mempunyai nama beberapa pekerjasyarikat. Dan kami akan cuba membina fungsi untuk mengekstrak sama ada nama pertama atau nama akhir pekerja.

Untuk melakukannya, ikut langkah di bawah.

Langkah:

  • Pertama, serupa dengan kaedah 1 , tampal kod di bawah dalam modul baharu dalam tetingkap VBA .
4758

  • Di sini, kami telah mencipta fungsi yang dipanggil SHORTNAME yang mengekstrak sama ada nama pertama atau nama akhir daripada nama. Mari gunakan formula ini pada set data kami.
  • Pada mulanya, untuk mengekstrak nama pertama, tulis formula di bawah dalam sel C5 .
=SHORTNAME(B5,-1)

  • Akhir sekali, untuk mengekstrak nama keluarga, kami menulis formula berikut dalam D5 :
=SHORTNAME(B5,1)

  • Selepas itu, jika kita mengisi seluruh sel secara automatik dengan Pengendali Isi , kita akan melihat hasil yang kita inginkan.

🎓 Bagaimana Kod Berfungsi?

  • Fungsi SHORTNAME(Nama Sebagai Rentetan, Pertama_atau_Terakhir Sebagai Integer)

Ia mencipta fungsi baharu yang dipanggil SHORTNAME dengan satu argumen String bernama Nama dan satu Argumen Integer bernama First_or_Last .

  • Dim Break As Integer

Bahagian ini mengisytiharkan pembolehubah integer baharu bernama Break .

  • Break = InStr(1, Name, ” “, 0)

Ia memberikan nilai pembolehubah Break sebagai output fungsi InStr dengan argumen 1, Nama, “ ” dan 0 . Ringkasnya, ini memberikan kedudukan dalam Nama di mana terdapat ruang (“ ”).

  • Jika First_or_Last = -1 Then SHORTNAME = Kiri(Nama, Putus – 1)

Baris ini memberikan output fungsi SHORTNAME sebagai aksara sebelum ruang , jika argumen First_or_Last ialah -1. Ini adalah nama pertama.

  • SHORTNAME = Kanan(Nama, Len(Nama) – Break)

Bahagian ini memberikan output bagi SHORTNAME berfungsi sebagai aksara selepas ruang , jika argumen First_or_Last ialah 1. Ini ialah nama akhir.

Kesimpulan

Dengan cara ini, anda boleh menulis kod VBA dengan fungsi InStr yang mengetahui kedudukan rentetan tertentu dalam satu lagi yang diberikan rentetan, dan kemudian anda boleh mencipta fungsi anda sendiri untuk pelbagai kegunaan. Tambahan pula, jika anda mempunyai sebarang soalan, sila tanya kami.

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.