Thông thường, người dùng cần kiểm tra xem một phạm vi được đặt tên có tồn tại hay không để phục vụ cho việc phân tích kinh doanh. Nhìn chung, cách thao tác không khó nhưng đòi hỏi bạn phải có tính logic để biết cách sắp xếp mã VBA. Do đó, bài viết này sẽ giúp bạn kiểm tra phạm vi đã đặt tên bằng Excel VBA chỉ với 2 bước!

Bước 1: Chọn tập dữ liệu

Hãy cùng xem qua ví dụ tập dữ liệu về doanh số bán trái cây hàng tháng của một siêu thị. Tập dữ liệu có 4 cột có tiêu đề, gồm: Items và doanh số của January, February và March (như hình dưới).

Sample dataset of different items and sales

Cách thao tác:

1. Chọn Formulas trên thanh công cụ.

2. Chọn Name Manager.

Open name manager in excel

3. Hộp thoại Name Manager sẽ hiển thị. Bạn có thể thấy các phạm vi được đặt tên có sẵn trong sổ làm việc (như hình dưới).

Name manager dialog box

4. Chọn Close.

Bước 2: Chèn mã VBA để kiểm tra phạm vi được đặt tên 

Mã VBA sẽ giúp bạn kiểm tra xem một phạm vi được đặt tên có tồn tại trong Excel hay không bằng cách:

1. Giữ phím ALT + F11 trong Excel để mở Microsoft Visual Basic.

2. Chọn Insert > Module.

insert module in excel VBA

3. Một cửa sổ mới sẽ mở ra và viết macro VBA sau vào Module. Lưu ý là bạn phải chèn tất cả các phạm vi đã đặt tên mà bạn muốn kiểm tra.

Trong trường hợp này, người dùng chèn 6 tên phạm vi để kiểm tra trong tập dữ liệu (như hình dưới).

Sub VBA_Check_Named_Range()
Dim pckRng As Range
Dim kRangeName(6) As String
Dim bdOt As Long
Dim g As Integer
kRangeName(0) = "Apples"
kRangeName(1) = "Lemons"
kRangeName(2) = "Cherry"
kRangeName(3) = "Bananas"
kRangeName(4) = "Guava"
kRangeName(5) = "Litchi"
kRangeName(6) = "Grapes"
Application.ScreenUpdating = False
For g = 0 To 6
On Error Resume Next
bdOt = Len(ThisWorkbook.Names(kRangeName(g)).Name)
On Error GoTo 0
If bdOt <> 0 Then
Set pckRng = Range(kRangeName(g))
MsgBox "Provided Named Range: '" & kRangeName(g) & "' Found!", vbInformation, "ExcelDemy Publications"
bdOt = 0
Else
MsgBox "Provided Named Range: '" & kRangeName(g) & "' Can Not be Found!", vbInformation, "ExcelDemy Publications"
End If
Next g
Application.ScreenUpdating = True
End Sub

type VBA code in Module box to check if named range exists

4. Nhấn F5 để chạy mã.

the VBA macro code returns message box showing named ranges

Sau khi nhấn OK, kết quả sẽ hiển thị. Tuy nhiên, để biết một phạm vi được đặt tên có tồn tại hay không, bạn chỉ cần nhấn nút OK mỗi khi hộp thoại xuất hiện.

Hy vọng bài viết này sẽ giúp bạn hiểu được cách kiểm tra phạm vi được đặt tên có tồn tại trong tệp dữ liệu bằng Excel VBA. Để nâng cao khả năng viết code đơn giản, đọc hiểu code phức tạp, áp dụng tự động hóa vào công việc hàng ngày, hãy cân nhắc đến việc tham gia một khóa học VBA. Khóa học Ứng dụng VBA trong Excel tại UniTrain được thiết kế nội dung đào tạo mang tính ứng dụng cao, giúp học viên dễ dàng chuyển hóa kiến thức cơ bản nhất để ứng dụng trong hầu hết các tình huống thực tế.

Xem thêm

Khai giảng khóa học Ứng dụng VBA trong Excel

Bộ tài liệu “Làm chủ Excel và VBA” 

Cách ẩn thanh công thức bằng Excel VBA

Cách đánh giá chuỗi dưới dạng mã bằng Excel VBA

Tags