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.

ArrowRawData

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.

ArrowFilterData

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.

ArrowOutput

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]