Hướng dẫn cách sử dụng Regular Expression và cách tra cứu thời gian bằng VBA
Regular Expressio? Và cách tra cứu thời gian bằng VBA là như thế nào? Là câu hỏi mà không phải ai cũng có câu trả lời chính xác. Hãy đọc bài viết dưới đây do eLib biên soạn để tìm cho mình được câu trả lời chính xác nhất nhé.
Mục lục nội dung
1. Hướng dẫn cách sử dụng Regular Expression trong VBA
1.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.
1.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
Sub test_RegExp() 'Sử dụng Regular Expression trong VBA
Dim RE As Object 'Khai báo biến Regular Expression để sử dụng
Dim strPattern As String 'Khai báo biến đại diện cho đoạn chuỗi text cần xử lý bởi RE
Dim matches As Object 'Kết quả sau khi thực hiện bởi RE
strPattern = "[ABCD]-hoc excel online" 'Thiết lập quy luật hiển thị dữ liệu
Set RE = CreateObject("VBScript.RegExp") 'Thiết lập Object cho Regular Expression
RE.Pattern = strPattern 'Xác định đoạn chuỗi sẽ xử lý bởi RE
RE.Global = True 'Lấy toàn bộ kết quả có được trong chuỗi
'Nếu RE.Global = False hoặc không sử dụng thì chỉ lấy được 1 kết quả đúng đầu tiên tìm được
Set matches = RE.Execute([A6]) 'Thiết lập kết quả khi sử dụng RE cho ô A6
End Sub
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.
2. Tra cứu thời gian bằng VBA
2.1. Những đối tượng xác định thời gian trong VBA
Xác định Ngày hiện tại
Để xác định ngày hiện tại trong VBA thì chúng ta sử dụng DATE chứ không phải TODAY. Câu lệnh gọi giá trị ngày hiện tại như sau:
Sub Time_01() 'Xác định ngày hiện tại
Dim a As Date
a = Date
MsgBox a
End Sub
Xác định Ngày+Giờ hiện tại
Sử dụng đối tượng là NOW, tương tự hàm NOW trong Excel
Câu lệnh gọi giá trị ngày giờ hiện tại như sau:
Sub Time_02() 'Xác định ngày giờ hiện tại
Dim a As Date
a = Now
MsgBox a
End Sub
2.2. Ứng dụng xác định thời gian thực hiện 1 câu lệnh VBA
Tại mỗi thời điểm bắt đầu và kết thúc mỗi câu lệnh thì giá trị thời gian xác định bởi NOW là khác nhau. Do đó chúng ta có thể dựa vào điều này để xác định độ chênh lệch thời gian khi bắt đầu và khi kết thúc 1 câu lệnh. Đó chính là thời gian VBA thực hiện xong câu lệnh đó.
Sub Time_03() 'Xác định thời gian thực hiện câu lệnh
Dim t As Date
t=Now() 'Thời gian bắt đầu câu lệnh
'Nội dung câu lệnh đặt tại đây
'Xác định thời gian thực hiện câu lệnh
MsgBox Format(Now() - t, "hh:mm:ss")
End Sub
Biến “t” là thời điểm bắt đầu, khi gán biến t cho thời điểm đó thì giá trị thời điểm đó sẽ được ghi nhận và cố định lại.
Khi kết thúc câu lệnh thì giá trị Now sẽ thay đổi. Now() – t sẽ thể hiện được độ lệch giữa 2 khoảng thời gian.
Format lại giá trị hiệu của 2 khoảng thời gian về dạng giờ:phút:giây để xác định cụ thể độ lệch thời gian.
Việc sử dụng biến thời gian trong VBA rất đơn giản. Bạn chỉ cần gán giá trị thời gian đó vào biến. Tại thời điểm gán thì giá trị thời gian đó sẽ được lưu lại và có thể sử dụng vào vị trí bất kỳ sau khi gán.
Như vậy bài viết đã hướng dẫn cho bạn cách sử dụng Regular Expression và cách tra cứu thời gian bằng VBA. Hy vọng rằng bài viết này sẽ giúp ích cho các bạn. Chúc bạn thực hiện thao tác thành công!
Tham khảo thêm
- doc Hướng dẫn vẽ biểu đồ đường và biểu đồ tròn trong Excel mà bạn nên biết
- doc Cách dùng hàm AVERAGE, MAX, MIN
- doc Cách sử dụng hàm Sum và hàm SUMIF trong Excel
- doc Hướng dẫn hàm tính tiền tích lũy và khấu hao tài sản trong Excel
- doc Hướng dẫn cách tạo chú thích cho ô và thay đổi màu cho ô theo giá trị trong Excel
- doc Hướng dẫn cách gộp ô và cố định hàng, cốt trong Excel
- doc Hướng dẫn cách gộp nhiều Sheet vào một Sheet và cách xuất dữ liệu ra file Excel mới
- doc Hướng dẫn vẽ biểu đồ thanh/ cột chồng trong Excel một cách nhanh chóng nhất
- doc Hướng dẫn thay đổi cột kết quả và cách lọc giá trị trong Pivottable của Excel MacBook
- doc Hướng dẫn xóa cột hoặc dòng Grand ToTal và cách để làm mới một Pivottable trong Excel
- doc Hướng dẫn thủ thuật làm mới một Pivot Table trong Excel một cách nhanh chóng nhất
- doc Hướng dẫn cách cố định các đối tượng với hàng, cột và viết hàm tìm dòng cuối cùng có dữ liệu trong VBA
- doc Hướng dẫn cách đánh số thứ tự ngày tháng bỏ qua các ngày cuối tuần và sử dụng Flash Fill để tách họ tên trong Excel
- doc Hướng dẫn cách xoá bỏ giá trị trùng lặp với Power Query và các cách để Transpose trong Excel
- doc Giới thiệu cách sử dụng Data Validation List với nguồn là Table và cách loại bỏ dấu chấm trong số điện thoại
- doc Hướng dẫn lập sổ nhật ký chung và sổ cái bằng hàm “HeoSQL”
- doc Hướng dẫn sử dụng hàm VLOOKUP trả về mảng giá trị và sử dụng hàm VLOOKUP lồng VLOOKUP trong Excel
- doc Hướng dẫn đếm số lượng giá trị duy nhất trong 1 vùng và cách tách rời từng ký tự một ra khỏi chuỗi
- doc Hướng dẫn lấy ra danh sách tên các Sheet và tạo phím tắt đếm số lượng Sheet ẩn, hiện trong Excel
- doc Hướng dẫn cách lấy dữ liệu từ 1 File Excel đang đóng và Cách lấy lại File Excel do bị tắt đột ngột
- doc Phương pháp để Protect và UnProtect nhiều Sheet cùng 1 lúc trong Excel một cách nhanh chóng
- jpg Hướng dẫn dùng INDEX và MATCH trong Excel một cách nhanh chóng nhất
- doc Hướng dẫn sửa lỗi không chọn được Visual Basic, Macro trong thẻ Developer và cách gộp các file CSV vào trong một file chung nhanh chóng
- doc Hướng dẫn chi tiết cách sử dụng Quick Access Toolbar trong Excel
- doc Hướng dẫn thay đổi vùng in tự động và viết tắt họ tên trên Excel bằng VBA
- doc Hướng dẫn lấy tên Worksheet đang làm việc một cách nhanh chóng nhất
- doc Hướng dẫn cách tạo Combobox trong Excel một cách nhanh chóng nhất
- doc Hướng dẫn tạo Menu liên kết tới các sheet bằng hàm Hyperlink và cách sử dụng công thức đếm số lần xuất hiện trong Table
- doc Hướng dẫn tạo danh sách không có giá trị trùng trong combobox
- doc Hướng dẫn tra cứu thời gian và tìm giá trị gần đúng nhất bằng VBA
- doc Cách dùng hàm SUMIFS lập báo cáo tổng hợp một cách nhanh chóng nhất
- doc Hướng dẫn cách tính trung bình của một số theo từng lần và sử dụng hàm Subtotal để đánh số thứ tự kết quả lọc Autofilter
- doc Hướng dẫn lập bảng kế hoạch thanh toán hóa đơn trong Excel nhanh chóng nhất
- doc VBA là gì? VBA trong Excel giúp ích gì cho công việc của bạn?
- doc Vẽ và phân tích biểu đồ xu hướng với Data Analysis trong Excel
- doc Hướng dẫn cách sử dụng hàm PMT tính số tiền thanh toán hàng kỳ cho khoản vay và cách phân tích trả nợ gốc và lãi cùng chuỗi hàm PMT trong Excel
- doc Hướng dẫn chọn nội dung xuất hiện nhiều nhất trong danh sách và sử dụng vòng tính lặp trong Excel