Danh sách xác thực bỏ qua các ô trống bằng VBA trong Microsoft Excel
Trong bài viết này, chúng tôi sẽ sử dụng sự kiện thay đổi lựa chọn của trang tính để tạo danh sách xác nhận, bỏ qua các giá trị trống.
Dữ liệu thô bao gồm Tên sản phẩm, cùng với một số ô trống trong cột A.
Chúng tôi muốn tạo danh sách xác nhận cho Tên sản phẩm, bỏ qua các ô trống.
Giải thích logic
Trong bài viết này, chúng tôi đã sử dụng sự kiện thay đổi lựa chọn của trang tính để tạo xác thực trong ô I12. Đầu tiên, chúng ta sẽ tạo một chuỗi bao gồm tất cả các tên sản phẩm, được phân tách bằng dấu phẩy, bỏ qua các ô trống. Sau đó, chúng tôi sẽ thêm chuỗi này để xác thực ô.
Giải thích mã
IntLastRow = .Cells (Rows.Count, 1) .End (xlUp) .Row Đoạn mã trên được sử dụng để lấy số hàng của ô cuối cùng.
If Not IsEmpty (.Cells (IntRow, 1)) Sau đó ‘Nối các giá trị không trống trong cột đầu tiên Txt = Txt & .Cells (IntRow, 1) & “,”
End If Đoạn mã trên được sử dụng để tạo một chuỗi tên sản phẩm, bỏ qua các ô trống.
Với Phạm vi (“I12”). Xác thực ‘Xóa mọi xác thực trước đó khỏi ô. Xóa’ Thêm xác thực. Thêm _ Loại: = xlValidateList, _ AlertStyle: = xlValidAlertStop, _ Toán tử: = xlBetween, _ Formula1: = Txt End With Đoạn mã trên được sử dụng để gán xác thực cho ô I12.
Vui lòng theo dõi bên dưới để biết mã
Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Declaring variables Dim IntRow As Integer, IntLastRow As Integer Dim Txt As String With Worksheets("Main") 'Finding the row number of last cell IntLastRow = .Cells(Rows.Count, 1).End(xlUp).Row 'Looping from 10th row to Last row For IntRow = 10 To IntLastRow 'Creating text for validation list If Not IsEmpty(.Cells(IntRow, 1)) Then 'Concatening non blank values in the first column Txt = Txt & .Cells(IntRow, 1) & "," End If Next IntRow End With Txt = Left(Txt, Len(Txt) - 1) 'Adding validation to cell I12 With Range("I12").Validation 'Deleting any previous validation from the cell .Delete 'Adding the validation .Add _ Type:=xlValidateList, _ AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, _ Formula1:=Txt End With End Sub
Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.
Chúng tôi rất muốn nghe ý kiến từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi [email protected]