25/05/2018, 23:26

Cách sử dụng Regular Expression trong VBA

1. Khái niệm về Regular Expression Đây là một thuật ngữ thường dùng trong lập trình, giúp tìm ra những dữ liệu được sắp xếp theo 1 quy luật nhất định trong 1 chuỗi văn bản. Ví dụ: Những con số nằm trong 1 đoạn text: Số điện thoại, số nhà Thông tin Email nằm trong 1 đoạn text Khi sử dụng ...

1. Khái niệm về Regular Expression

Đây là một thuật ngữ thường dùng trong lập trình, giúp tìm ra những dữ liệu được sắp xếp theo 1 quy luật nhất định trong 1 chuỗi văn bản.

Ví dụ:

Những con số nằm trong 1 đoạn text: Số điện thoại, số nhà

Thông tin Email nằm trong 1 đoạn text

Khi sử dụng Regular Expression sẽ giúp chúng ta dễ dàng tách được những dữ liệu có tính quy luật ra khỏi 1 đoạn text => Được ứng dụng nhiều trong việc xử lý dữ liệu, trích lọc dữ liệu, đặc biệt trong những bảng dữ liệu lớn, phức tạp mà hầu hết đều phải làm bằng tay nếu không sử dụng VBA trong excel.

2. Cách sử dụng Regular Expression

Chúng ta cùng tìm hiểu về cách sử dụng chức năng này thông qua ví dụ sau:

Cho đoạn text tại ô A6 như sau:

Trích lọc những nội dung thỏa mãn điều kiện:

1 ký tự bất kỳA, B, C, D… kết hợp với đoạn text “-hoc excel online”

Ví dụ:

A-hoc excel online

B-hoc excel online

Bước 1: Mở cửa sổ Visual Basic Application (VBA)

Có 2 cách để mở cửa sổ VBA:

  • Cách 1: Bấm tổ hợp phím tắt Alt + F11
  • Cách 2: Trong tab Developer, bấm chọn Visual Basic

Bước 2: Tạo mới 1 Module

Bấm chuột phải vào mục Project – VBAProject rồi chọn Insert / Module

Bước 3: Mở cửa sổ Locals trong VBA để giúp việc  hiểu về cách sử dụng Regular Expression dễ hơn

Trong tab View  > Chọn mục Locals Window

Bước 4: Tạo 1 sub Test và thực hiện như sau

View the code on Gist.

* Lưu ý:

Nếu chuỗi strPattern có sử dụng tiếng việt có dấu thì chúng ta có thể đặt chuỗi đó vào 1 vị trí xác định trong file excel rồi tham chiếu tới vị trí đó (vì trong VBA không viết trực tiếp được tiếng việt có dấu nên có thể sử dụng gián tiếp)

strPattern = “[ABCD]-” & sheet1.Cells(7,1).value

* Kiểm tra kết quả:

Đặt Break Point tại End Sub rồi thực  hiện Run Macro này. Kết quả thu được tại mục Local như sau:

Như vậy 3 kết quả của matches đã đúng như chúng ta mong muốn.

Với việc sử dụng chức năng Regular Expression chúng ta có thể thực hiện việc trích lọc dữ liệu theo quy luật trong 1 chuỗi lớn dễ dàng hơn nhiều rồi phải không nào.

* Video hướng dẫn:

Ngoài ra bạn có thể xem thêm video hướng dẫn để hiểu rõ hơn cách làm nhé:

Chúc các bạn học tốt cùng Học Excel Online!

0