VBA RegEx

Apa itu RegEx dalam Excel VBA?

RegEx adalah singkatan dari " Regular Expression " dalam VBA Excel dan merupakan urutan watak yang menentukan corak pencarian untuk mencari corak watak tertentu dalam rentetan nilai. Dengan kata sederhana "kita dapat membuat pola ekspresi biasa dan menggunakannya untuk mencari rentetan pola itu".

VBA RegEx adalah model objek. Saya tahu ia menakutkan dengan melihat penjelasannya tetapi masalahnya adalah sifat objek tersebut. Satu perkara yang perlu anda ingat di sini ialah VBA RegEx (Regular Expression) adalah objek fungsi teks seperti fungsi teks kita yang lain "LEFT, RIGHT, MID".

Bagaimana Mengaktifkan RegEx di Excel VBA?

Seperti yang saya katakan VBA RegEx adalah model objek di VBA seperti perisian luaran kita seperti "MS Word" dan "MS PowerPoint". Begitu juga, RegEx juga merupakan Component Object Model (COM) yang perlu kita rujuk dalam editor VBA. Untuk mengaktifkan RegEx, ikuti langkah-langkah di bawah.

Langkah 1: Pergi ke Visual Basic Editor (Alt + F11)

Langkah 2: Pergi ke Alat dan Rujukan.

Langkah 3: Sekarang anda akan melihat rujukan ke Projek VBA. Tatal ke bawah dan pilih "Microsoft VBScript Regular Expression 5.5"

Langkah 4: Sekarang klik OK. Kita boleh mengakses objek RegEx ini sekarang dalam pengekodan VBA.

Contoh - Sekarang saya akan menunjukkan satu contoh mudah. Andaikan anda mempunyai kata-kata "Penjualan 2019, Penjualan 2018, dan Penjualan 2017". Sekiranya anda menentukan corak sebagai [0 - 7] ia sesuai dengan semua nombor antara 0 hingga 7, jadi padanan kami akan menjadi 201, 201, dan 2017 di setiap rentetan.

Corak VBA RegEx

Corak fungsi VBA RegEx kelihatan menakutkan dan memerlukan sedikit masa untuk memahami coraknya. Kita dapat melihat dua jenis urutan watak di sini yang pertama adalah "Watak Literal" dan yang lain adalah "Metacharacters"

  • Watak Literal mencari padanan tepat dari rentetan yang disediakan. Sebagai contoh, urutan watak literal "EFG" hanya mencari semua padanan "EFG" dalam teks yang disediakan.
  • Metacharacters tidak lain adalah gabungan watak dengan makna yang tepat dalam corak RegEx. Ini sama sekali berbeza dengan Watak Literal. Ini adalah topik besar untuk dibahas, berikut adalah beberapa sintaks penting.
SintaksPeneranganContohnyaPadankan Contoh
.Ia sesuai dengan mana-mana watak rentetan inputptHaiwan peliharaan. Pot, Letak, Corak
[]Ia sesuai dengan mana-mana watak antara pendakap rentetan input[pt]Ia sepadan dengan p atau t
[^]Ia sesuai dengan mana-mana watak tunggal, bukan antara tanda kurung input[^ pt]Ia tidak sepadan dengan p atau t
[Pertama terakhir]Ia sesuai dengan mana-mana watak antara julat yang disediakan dalam kurungan[0-9]Ia sepadan dengan sebarang digit dari 0 hingga 9
[az]Ia sesuai dengan mana-mana huruf kecil dari a hingga z
[AZ]Ia sesuai dengan mana-mana huruf besar dari A hingga Z
\ sIa sesuai dengan mana-mana watak ruang putih-Memadankan Ruang, Baris Baru, atau Karakter Tab
\ SIa sesuai dengan watak ruang bukan putih-Karakter padanan bukan Spasi, bukan Baris Baru, atau bukan Karakter Tab
\ dIa sepadan dengan watak satu digitSE 5 VG 6Perlawanan 5 dan 6
\ DIa sesuai dengan watak nondigit tunggalSE 5 VG 6Perlawanan SEVG

Sifat dan Kaedah Objek RegEx

Seperti semua model objek kami, RegEx juga mempunyai sifat dan kaedah tersendiri. Sekarang kita akan melihat satu persatu secara terperinci.

Sifat Objek Regex VBA

  • Corak: Ini digunakan untuk memadankan rentetan yang disediakan.
  • Abaikan Kes: Ini untuk mengabaikan huruf besar dan huruf kecil.
  • Global: Sekiranya anda ingin mencari semua perlawanan dalam corak maka BENAR adalah hujahnya atau jika tidak, perlawanan pertama akan dijumpai.
  • Berbilang Talian: Sekiranya anda ingin mencari jeda baris baru, anda boleh menggunakannya.

Kaedah Objek RegEx

  • Uji: Ini untuk menguji sama ada corak boleh didapati dalam tali yang disediakan. Ini akan mengembalikan BENAR jika didapati atau SALAH.
  • Laksanakan: Ini akan mengembalikan semua padanan corak dengan rentetan penemuan.
  • Ganti: Ini akan menggantikan rentetan carian dengan rentetan baru.

Contoh RegEx dalam VBA Excel

Sekarang lihat contoh kod VBA di bawah.

Anda boleh memuat turun Templat VBA RegEx Excel ini di sini - Templat VBA RegEx Excel

Kod:

Sub RegEx_Example () Dim RegEx Sebagai Objek, MyString As String Set RegEx = CreateObject ("VBScript.RegExp") With RegEx .Pattern = "[0-9] +" End With MyString = "Tarikh Lahir tahun 1985 adalah" MsgBox RegEx .Test (MyString) MyString = "Tarikh Lahir tahun adalah ???" MsgBox RegEx.Test (MyString) Akhir Sub

fregular

Dalam kod di atas, kami telah menetapkan corak untuk mencari nombor dari 0 hingga 9 seperti berikut.

 Dengan RegEx .Pattern = "[0-9] +" Tamat Dengan 

Kemudian pemboleh ubah MyString = "Tarikh Lahir tahun 1985" ini menyimpan nilai dari 0 hingga 9, sehingga kotak mesej kami akan mengembalikan BENAR.

MyString = "Tarikh Lahir tahun ???" tidak mempunyai nombor dari 0 hingga 9 jadi akan mengembalikan SALAH sebagai hasil kotak mesej.