Computer >> Máy Tính >  >> Phần mềm >> Office

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Nếu bạn đang tìm kiếm các cách dễ nhất để sử dụng dải ô đã đặt tên để xác thực dữ liệu danh sách trong Excel VBA , thì bạn sẽ thấy bài viết này hữu ích. Phạm vi được đặt tên hữu ích để sử dụng trong công thức xác thực dữ liệu để tạo danh sách thả xuống dễ dàng và tác vụ này có thể được thực hiện cực kỳ dễ dàng với sự trợ giúp của một số VBA mã.
Vì vậy, hãy bắt đầu bài viết chính của chúng tôi để khám phá các cách sử dụng phạm vi đã đặt tên trong danh sách xác thực dữ liệu.

Tải xuống Workbook

4 cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu trong Excel với VBA

Tại đây, chúng tôi có tập dữ liệu sau chứa hồ sơ của một số sản phẩm và danh sách nhân viên bán hàng tương ứng của chúng. Sử dụng tập dữ liệu này, chúng tôi sẽ cố gắng hiển thị các cách khác nhau với các VBA khác nhau mã để sử dụng các dải ô đã đặt tên trong danh sách xác thực dữ liệu.

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Chúng tôi đã sử dụng Microsoft Excel 365 phiên bản ở đây, bạn có thể sử dụng bất kỳ phiên bản nào khác tùy theo sự thuận tiện của bạn.

Phương pháp-1 :Sử dụng Dải ô đã Đặt tên trong Xác thực Dữ liệu để Tạo Danh sách Thả xuống

Ở đây, chúng tôi đã đặt tên cho phạm vi Trái cây cột có Trái cây và sử dụng VBA mã, chúng tôi sẽ tạo danh sách thả xuống trong ô D6 .

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Bước-01 :
➤ Đi tới Nhà phát triển Tab>> Visual Basic Tùy chọn.

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Sau đó, Trình chỉnh sửa Visual Basic sẽ mở ra.
➤ Đi tới Chèn Tab>> Mô-đun Tùy chọn.

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Sau đó, một Mô-đun sẽ được tạo.

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Bước-02 :
➤ Viết đoạn mã sau

Sub Datavalidation1()

Range("D6").Validation.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, Formula1:="=Fruits"

End Sub

Đây, Xác thực sẽ được thêm vào ô D6 , xlValidateList là để tạo danh sách thả xuống và công thức được sử dụng làm tên của phạm vi “=Fruits” .

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

➤ Nhấn F5 và sau đó nhấp vào biểu tượng thả xuống của ô D6 .
Sau đó, bạn sẽ nhận được danh sách các loại trái cây và chọn một mục bất kỳ từ danh sách như Anh đào .

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Cuối cùng, chúng tôi đang nhận được mục đã chọn của mình trong ô D6 .

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Đọc thêm:Cách tạo danh sách xác thực dữ liệu từ bảng trong Excel (3 phương pháp)

Phương pháp-2 :Thêm Dải ô được Đặt tên và Danh sách Xác thực Dữ liệu bằng Mã VBA

Chúng tôi sẽ không tạo bất kỳ phạm vi được đặt tên nào ở đây theo cách thủ công, thay vì một VBA đơn giản mã sẽ tạo thành một dải ô được đặt tên và sau đó, sử dụng nó, chúng tôi sẽ nhận được danh sách thả xuống cuối cùng trong ô D6 .

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Các bước :
➤ Thực hiện theo Bước-01 của Phương pháp-1 .
➤ Viết đoạn mã sau

Sub Datavalidation2()

ActiveWorkbook.Names.Add Name:="Fruit", _
RefersTo:=ThisWorkbook.Worksheets("Add").Range("B4:B10")
Range("D6").Validation.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, Formula1:="=Fruit"

End Sub

Đầu tiên, nó sẽ thêm tên Fruit đến phạm vi “B4:B10” của trang tính Thêm .
Sau đó, chúng tôi sẽ thêm Xác thực vào ô D6 , xlValidateList là để tạo danh sách thả xuống và công thức được sử dụng làm tên của phạm vi “=Fruit” .

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

➤ Nhấn F5 , sau đó, chuyển đến trang tính và nhấp vào biểu tượng thả xuống của ô D6 .
Sau đó, bạn sẽ nhận được danh sách các loại trái cây và chọn một mục bất kỳ từ danh sách như Quả việt quất .

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Vì vậy, chúng tôi đã có mặt hàng Quả việt quất mong muốn của chúng tôi từ danh sách và bên cạnh đó, chúng tôi có thể thấy phạm vi được đặt tên đã tạo của chúng tôi cho các loại trái cây.

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Nội dung có liên quan:Tạo danh sách thả xuống xác thực dữ liệu với nhiều lựa chọn trong Excel

Bài đọc tương tự:

  • Danh sách thả xuống xác thực dữ liệu tự động hoàn thành trong Excel (2 phương pháp)
  • Danh sách thả xuống xác thực dữ liệu Excel có bộ lọc (2 ví dụ)
  • Giá trị Mặc định trong Danh sách Xác thực Dữ liệu với Excel VBA (Macro và UserForm)
  • Áp dụng Xác thực Dữ liệu Tùy chỉnh cho Nhiều Tiêu chí trong Excel (4 Ví dụ)
  • Chỉ xác thực dữ liệu Excel bằng chữ và số (Sử dụng Công thức Tùy chỉnh)

Phương pháp-3 :Cập nhật danh sách xác thực dữ liệu với phạm vi được đặt tên bằng Excel VBA

Giả sử, chúng ta có danh sách thả xuống sau trong ô D6 , hoạt động tốt cho tập dữ liệu cố định.

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Nhưng, nếu chúng ta bổ sung thêm một loại rau Xà lách thì nó sẽ không xuất hiện trong danh sách thả xuống có nghĩa là danh sách thả xuống của chúng tôi không được cập nhật tự động trong trường hợp này.

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Để cập nhật danh sách một cách nhanh chóng và tự động, bạn có thể làm theo phương pháp này.

3.1:Tạo phạm vi được đặt tên được cập nhật

Trước tiên, chúng tôi phải thêm tên cho phạm vi Cột B theo cách mà nó sẽ tự động lấy các mục mới được thêm vào tên này.
➤ Đi tới Công thức Tab>> Tên được xác định Nhóm>> Người quản lý tên Tùy chọn.

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Sau đó, Trình quản lý tên hộp thoại sẽ mở ra.
➤ Nhấp vào Mới tùy chọn.

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Sau đó, Chỉnh sửa tên thuật sĩ sẽ bật lên.
➤ Viết ra Rau cải trong Tên và công thức sau trong hộp Tham chiếu đến và cuối cùng nhấn OK .

=OFFSET(Update!$B$4, 0, 0, COUNTA(Update!$B:$B)-2)

Tại đây, Cập nhật! Là tên trang tính, $ B $ 4 là ô tham chiếu mà chúng tôi muốn di chuyển từ đó, 0 cho Hàng Cột đối số có nghĩa là nó sẽ vẫn ở vị trí tham chiếu hoặc bắt đầu của nó.
COUNTA sẽ đếm số ô có bất kỳ loại giá trị nào trong Cột B rồi đến 2 sẽ bị trừ vì tiêu đề của tập dữ liệu trong B1 và tiêu đề của cột trong B3 . Vì vậy, bạn sẽ chỉ nhận được số lượng ô chứa bất kỳ loại rau nào.
Số này sẽ là tham chiếu trả về từ vị trí bắt đầu và OFFSET sẽ luôn trả về dải ô có tên được cập nhật tại đây.

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Sau đó, bạn sẽ được đưa đến Trình quản lý tên Thuật sĩ.
➤ Nhấn Đóng.

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

3.2:Sử dụng mã VBA để áp dụng danh sách xác thực dữ liệu

➤ Nhấp chuột phải vào tên trang tính và chọn Mã chế độ xem tùy chọn.

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Sau đó, cửa sổ mã sẽ xuất hiện.

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

➤ Nhập mã sau

Sub worksheet_Change(ByVal newitem As Range)

Dim updatedrange, item
If Not Intersect(newitem, Range("B:B")) Is Nothing Then
For Each item In Range("Vegetables")
updatedrange = updatedrange & "," & item
Next item
With ActiveSheet.Range("D6").Validation
      .Delete
      .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
       xlBetween, Formula1:=updatedrange
      .IgnoreBlank = True
      .InCellDropdown = True
      .InputTitle = ""
      .ErrorTitle = ""
      .InputMessage = ""
      .ErrorMessage = ""
      .ShowInput = True
      .ShowError = True
End With
End If

End Sub

Mã này sẽ chỉ thực thi nếu có bất kỳ thay đổi giá trị hoặc bổ sung nào xảy ra và vì vậy chúng tôi đã xác định quy trình là Worksheet_Change , Trang tính Đối tượng Thay đổi Thủ tục .
newitem chứa địa chỉ của ô mà chúng tôi đang thêm các giá trị mới và chúng tôi đã xác định nó là Phạm vi . Loại dữ liệu của phạm vi cập nhật mục sẽ được coi là Biến thể, nơi chúng tôi đã chỉ định phạm vi cập nhật vào phạm vi có tên được cập nhật của các loại rau và mặt hàng là cho các giá trị của mỗi ô trong phạm vi này.
CHO vòng lặp sẽ chỉ định phạm vi cập nhật cho phạm vi cập nhật VỚI câu lệnh sẽ tránh sự lặp lại của cùng một đối tượng và cuối cùng, chúng tôi đã thêm xác thực .

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Bây giờ, đã đến lúc quay lại trang tính chính và kiểm tra tác dụng sau khi bổ sung sản phẩm Diếp cá .
Như chúng ta có thể thấy, chúng tôi có mặt hàng mới này trong danh sách thả xuống của chúng tôi.

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Sau khi chọn mục mới này, chúng tôi sẽ có nó trong ô D6 .

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Đọc thêm: Cách sử dụng danh sách xác thực dữ liệu từ một trang tính khác (6 phương pháp)

Phương pháp-4 :Sử dụng Dải ô đã Đặt tên để Tạo Danh sách Thả xuống Có Điều kiện

Tại đây, chúng tôi sẽ tạo danh sách thả xuống trong ô E6 sẽ phụ thuộc vào điều kiện của ô D6 và vì lý do này, chúng tôi có hai phạm vi được đặt tên sau, chẳng hạn như fruit1 rau1 .

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Các bước :
➤ Thực hiện theo Bước-01 của Phương pháp-1 .
➤ Viết đoạn mã sau

Sub Datavalidation4()

If Range("D6") = "Fruits" Then
Range("E6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=fruit1"
Else
Range("E6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=vegetable1"
End If

End Sub

NẾU-THEN câu lệnh sẽ kiểm tra xem giá trị trong ô D6 Trái cây và đối với giá trị này, dưới dạng danh sách, chúng tôi sẽ nhận được phạm vi có tên fruit1 dưới dạng danh sách trong ô E6 nếu không, chúng tôi sẽ nhận được phạm vi được đặt tên là rau1 dưới dạng danh sách trong ô E6 .

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

➤ Nhấn F5 , sau đó đi tới trang tính và nhấp vào biểu tượng thả xuống của ô E6 .
Sau đó, bạn sẽ nhận được danh sách các loại trái cây cho danh mục là Trái cây trong ô D6 và chọn bất kỳ một mục nào từ danh sách như Quả mâm xôi .

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Vì vậy, chúng tôi đã có mặt hàng Quả mâm xôi mong muốn của mình từ danh sách.

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

➤ Để thay đổi danh mục thành Rau chúng ta có thể thấy rằng chúng ta đang có danh sách các loại rau sau khi chạy mã.

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Sau khi chọn Bông cải xanh chúng tôi đang nhận được mục này trong ô E6 .

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Nội dung có Liên quan: Cách sử dụng câu lệnh IF trong công thức xác thực dữ liệu trong Excel (6 cách)

Phần thực hành

Để tự mình thực hành, chúng tôi đã cung cấp một Thực hành như bên dưới trong trang tính có tên Thực hành . Hãy làm điều đó một mình.

Cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu với VBA trong Excel

Kết luận

Trong bài viết này, chúng tôi đã cố gắng đề cập đến các cách sử dụng dải ô đã đặt tên cho danh sách xác thực dữ liệu trong Excel VBA một cách dễ dàng. Hy vọng bạn sẽ thấy nó hữu ích. Nếu bạn có bất kỳ đề xuất hoặc câu hỏi nào, hãy chia sẻ chúng trong phần bình luận.

Các bài viết có liên quan

  • Cách Sử dụng Xác thực Dữ liệu trong Excel với Màu (4 Cách)
  • Excel VBA để tạo danh sách xác thực dữ liệu từ mảng
  • Cách Sử dụng Công thức VLOOKUP Tùy chỉnh trong Xác thực Dữ liệu Excel
  • [Đã sửa lỗi] Xác thực dữ liệu không hoạt động để sao chép dán trong Excel (với Giải pháp)
  • Cách Xóa Khoảng trống khỏi Danh sách Xác thực Dữ liệu trong Excel (5 Phương pháp)