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.

ArrowMain

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.

ArrowRawData

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]