Hiển thị tiêu chí Tự động lọc sau khi lọc bằng VBA trong Microsoft Excel
Trong bài viết này, chúng tôi sẽ tạo một macro để hiển thị các tiêu chí được sử dụng trong bộ lọc tự động.
Dữ liệu thô bao gồm thông tin chi tiết về khách hàng, bao gồm Tên, Số điện thoại, Id email và Tên công ty.
Chúng tôi đã áp dụng bộ lọc trong cột Công ty và bây giờ chúng tôi muốn xác định tên của người khiếu nại mà bộ lọc được áp dụng.
Chúng tôi sẽ nhấp vào nút “Tách dữ liệu bộ lọc” để lấy các tiêu chí mà bộ lọc được áp dụng.
Giải thích mã
IntRow = Range (“A10”). CurrentRegion.Rows.Count + 12 Đoạn mã trên được sử dụng để lấy số hàng, nơi đầu ra sẽ được hiển thị.
ActiveSheet.AutoFilter.Filters (IntCol) .On Đoạn mã trên được sử dụng để kiểm tra xem bộ lọc có được áp dụng trên cột cụ thể hay không.
Đối với mỗi StringValue Trong .Criteria1 MainString = MainString + Mid (StringValue, 2) + “|”
Tiếp theo Đoạn mã trên được sử dụng để tạo một chuỗi bao gồm tất cả các giá trị tiêu chí, được sử dụng trong bộ lọc.
Range (“A10”). CurrentRegion.SpecialCells (xlCellTypeVosystem) .Copy _ Cells (IntRow + 1, 1)
Đoạn mã trên được sử dụng để sao chép các hàng hiển thị đến đích được chỉ định.
Vui lòng theo dõi bên dưới để biết mã
Option Explicit Sub FilterCriteria() 'Declaring variables Dim IntRow, IntCol As Integer Dim MainString, StringValue As Variant 'Initializing the row and column number IntRow = Range("A10").CurrentRegion.Rows.Count + 12 IntCol = 1 'Looping through all the cells until blank cell is encountered in the 10th row Do Until IsEmpty(Cells(10, IntCol)) With ActiveSheet.AutoFilter.Filters(IntCol) 'Checking whether filter is applied on the column If .On Then MainString = "Filter On Column no. " & IntCol & " on values : " 'Creating text which consists of values used in the filter For Each StringValue In .Criteria1 MainString = MainString + Mid(StringValue, 2) + "|" Next 'Assigning value to cell Cells(IntRow, 1).Value = MainString Exit Do End If End With IntCol = IntCol + 1 Loop 'Copying the visible cells to row after the filter data Range("A10").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _ Cells(IntRow + 1, 1) 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]