Hà Vân
Hà Vân
Thảo luận 0 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 326 lượt xem

Hướng dẫn cách kiểm tra Name Range có tồn tại không bằng VBA Excel

Jan 26 2022

Bạn không biết file Excel của mình có tồn tại Name Range hay không? Hãy dùng VBA để kiểm tra cực nhanh nhé. Nếu bạn chưa biết viết code thì dùng code mẫu của Gitiho cung cấp trong bài viết này là được ngay nhé.

Name Range trong Excel là gì?

Name Range trong Excel là tên của một ô hoặc một dãy ô do người dùng đặt để phân biệt với các ô, dãy ô khác trong bảng tính Excel. Sau khi đã được đặt tên thì chúng ta có thể tham chiếu đến các ô dựa vào Name Range của nó. 

Ví dụ: Các bạn có một bảng dữ liệu bán hàng với dữ liệu về doanh thu nằm trong vùng B2:B10. Giả sử khi cần tính tổng doanh thu, chúng ta tham chiếu đến vùng này thì sẽ phải nhập B2:B10 vào công thức Excel như sau: 

= SUMIF($A$2:$A$10,$E$1,$B$2:$B$10)

Tuy nhiên, nếu các bạn dùng Name Range trong Excel đặt tên cho vùng dữ liệu B2:B10 này rồi thì công thức của chúng ta có thể trở nên gọn gàng hơn với dạng như sau:

= SUMIF(items_list,items,Sales)

Các bạn xem hình ảnh dưới đây để hình dung rõ hơn về ví dụ này nhé:


Xem thêm: Cách thay đổi kích thước Named Range hiện có trong Excel

Cách dùng VBA Excel kiểm tra sự tồn tại của Name Range

Trong thực tế, không phải lúc nào các bạn làm việc với file Excel do chính mình tạo ra. Nếu bạn làm việc trên file Excel của người khác thì bạn sẽ không biết được họ có tạo các Name Range cho dữ liệu hay không. Vậy làm thế nào để biết một Name Range có đang tồn tại hay không?

Thông thường, chúng ta sẽ sử dụng thẻ Formulas để kiểm tra. Tuy nhiên, có những Name Range không xuất hiện trong mục Name Manager của thẻ này nhưng vẫn đang tồn tại. Có cách nào để chúng ta tìm được các Name Range đang bị ẩn hoặc không cần mở Name Manager mà vẫn viết được một Name Range có đang tồn tại trên file Excel hay không? 

Cách xử lý tốt nhất cho tường hợp này là sử dụng VBA Excel.

Code VBA mẫu để kiểm tra sự tồn tại của Name Range

Bởi vì không phải bạn nào cũng có nền tảng kiến thức vể VBA Excel để có thể tự viết code kiểm tra được nên chúng mình sẽ cung cấp một đoạn code mẫu. Các bạn chỉ cần sao chép lại để sử dụng là được nhé.

Sub KTra_NameRange()
‘Thiet lap cac bien
Dim wbBook As Workbook
Dim nName As Name
Set wbBook = ActiveWorkbook
‘Ghi cac name ra sheet de kiem tra
For Each nName In wbBook.Names
With nName
Sheet1.Range(“A” & 1 + nName.Index).Value = nName.Name
End With
Next nName
End Sub

Trong đoạn code mẫu VBA phía trên chúng ta có các thành phần là:

  • Thiết lập các biến về Workbook - nơi để kiểm tra Name Range
  • Thiết lập các biến Name

Tại Workbook đang kích hoạt, chúng ta sẽ thực hiện 1 vòng lặp duyệt qua các Name đang có trong Workbook:

  • Mỗi Name xuất hiện sẽ ứng với 1 giá trị thứ tự tăng dần là nName.Index
  • Mỗi Name xuất hiện sẽ có tên tương ứng là nName.Name
  • Khi đó chúng ta gán Name vào sheet1, bắt đầu từ ô A2

Cách tạo Module và gắn Macro vào Module

Sau khi chèn code VBA vào module của VBA trong Excel thì các bạn phải tạo mới 1 module rồi copy đoạn code ở trên vào nhé.

Nếu các bạn chưa biết chèn code VBA mẫu vào trong module thì hãy làm theo các bước sau:

Bước 1: Vào thẻ Developer rồi chọn mục Visual Basic hoặc bạn có thể bấm tổ hợp phím tắt Alt + F11 để mở cửa sổ VBA.

Bước 2: Nhấp chuột phải vào khu vực Project ở bên trái cửa sổ làm việc => chọn Insert => chọn Module và đặt tên bất kỳ mà bạn thấy dễ nhớ. Ở đây chúng mình sẽ đặt là Module 1.


Bước 3: Dán đoạn code mẫu vào khu vực bên tay phải của cửa số làm việc như trong hình ảnh sau:


Khi chạy đoạn macro trên chúng ta sẽ thu được kết quả là các Name Range có trong workbook hiện tại của bạn.

Có thể nhiều bạn sẽ thắc mắc là cách kiểm tra Name Range có tồn tại không bằng VBA Excel này có ứng dụng thực tế nào không. Chúng ta hãy cùng xem một số công dụng của nó nhé:

  1. Trong bài kiểm tra kỹ năng Excel, bạn có thể kiểm tra xem người làm bài đã đặt tên vùng đúng theo yêu cầu chưa. Điều này rất thích hợp với các đơn vị đào tạo về Excel.
  2. Kiểm tra xem 1 tên mà bạn mong muốn đã xuất hiện chưa. Có thể bạn đặt tên cho vùng dữ liệu của mình rồi nhưng không biết nó có xuất hiện không thì hãy dùng cách này.
  3. Kiểm tra xem 1 tên được tạo ra trong VBA, dù không xuất hiện trong Name Manager nhưng có tồn tại hay không?
  4. Kiểm tra xem file có tên rác, tên không mong muốn không (dựa trên số lượng Name thu được, các Name bị ẩn không nhìn thấy.

Xem thêm: Hướng Dẫn Về Mảng Trong VBA Excel: Các Kiểu Động, Đa Chiều

Kết luận

Các bạn có thể thấy code VBA có thể giúp chúng ta xử lý được rất nhiều công việc tưởng chừng như khó khăn và tốn nhiều thời gian trong Excel. Nếu các bạn muốn được học một cách bài bản về cách viết code VBA thì hãy đăng ký ngay khóa học dưới đây:

Tuyệt đỉnh VBA - Viết code trong tầm tay

Khóa học rất phù hợp với các bạn thường xuyên gặp phải các vấn đề với số liệu bảng biểu hay phải tiêu tốn nhiều thời gian cho các thao tác trong Excel và muốn biến nó trở thành tự động. Khóa học sẽ giúp các bạn xây dựng kiến thức nền tảng về lập trình với VBA. Sau khi học, các bạn hoàn toàn có thể đọc hiểu code, sửa code và tự viết code để xử lý các vấn đề cụ thể. Khóa học sẽ bao gồm cả lý thuyết và thực hành nên các bạn sẽ dễ dàng tiếp thu được kiến thức. Giảng viên của Gitiho cũng sẽ hỗ trợ học viên 24/7, đảm bảo mọi thắc mắc được giải đáp nhanh chóng. Hãy đăng ký ngay để không bỏ lỡ ưu đãi tốt nhất về học phí nhé.

Cùng tham gia cộng đồng hỏi đáp về chủ đề VBA

Thảo luận 0 câu trả lời
Lượt xem 326 lượt xem
Vỗ tay vỗ tay

0 Bình luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội