VBA RegEx - Bagaimana cara menggunakan Ekspresi Biasa dalam VBA Excel? (Contoh)

Apa itu RegEx dalam Excel VBA?

RegEx adalah singkatan dari " Regular Expression " di 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. Satu perkara yang perlu anda ingat di sini ialah VBA RegEx (Regular Expression) adalah objek fungsi teks seperti fungsi teks kami yang lain, "KIRI, KANAN, MID."

Bagaimana Mengaktifkan RegEx di Excel VBA?

Seperti yang saya katakan kepada VBA, RegEx adalah model objek dalam VBA, sama seperti perisian luaran kita seperti "MS Word" dan "MS PowerPoint." Begitu juga, RegEx juga merupakan Model Objek Komponen (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 "Literal Characters," dan yang lain adalah "Metacharacters."

  • Watak Literal mencari padanan tepat tali 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.
Sintaks Penerangan Contohnya Padankan Contoh
. Ia sesuai dengan mana-mana watak rentetan input. pt Haiwan peliharaan. Pot, Letak, Corak
() Ia sesuai dengan mana-mana watak antara pendakap rentetan input. (mata pelajaran) 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
s Ia sesuai dengan mana-mana watak ruang putih. - Memadankan Ruang, Baris Baru, atau Karakter Tab
S Ia sesuai dengan watak tanpa ruang kosong - Karakter padanan bukan Spasi, bukan Baris Baru, atau bukan Karakter Tab
d Ia sepadan dengan watak satu digit. SE 5 VG 6 Perlawanan 5 dan 6
D Ia sesuai dengan mana-mana watak bukan digit SE 5 VG 6 Perlawanan 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, jika tidak, perlawanan pertama akan dijumpai.
  • Berbilang Talian: Sekiranya anda ingin mencari jeda baris baru, anda boleh menggunakannya.

Methods of RegEx Object

  • Test: This is to test whether the pattern can be found in the provided string. This will return TRUE if found or else FALSE.
  • Execute: This will return all the matches of the pattern against the finding string.
  • Replace: This will replace the search string with the new string.

Example of RegEx in VBA Excel

Now take a look at the below example VBA code.

Code:

Sub RegEx_Example() Dim RegEx As Object, MyString As String Set RegEx = CreateObject("VBScript.RegExp") With RegEx .Pattern = "(0-9)+" End With MyString = "Date of Birth year is 1985" MsgBox RegEx.Test(MyString) MyString = "Date of Birth year is ???" MsgBox RegEx.Test(MyString) End Sub

regular

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, jadi 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.

Artikel menarik...