在本文中,我们将创建一个宏来显示自动筛选中使用的条件。

原始数据由客户详细信息组成,其中包括姓名,电话号码,电子邮件ID和公司名称。

ArrowRawData

我们在“公司”列中应用了一个过滤器,现在我们想要确定应用该过滤器的公司的名称。

ArrowFilterData

我们将单击“分离过滤器数据”按钮以获取应用过滤器的条件。

ArrowOutput

代码说明

IntRow = Range(“ A10”)。CurrentRegion.Rows.Count + 12上面的代码用于获取行号,应在其中显示输出。

ActiveSheet.AutoFilter.Filters(IntCol).On上面的代码用于检查是否在特定列上应用了过滤器。

对于.Criteria1中的每个StringValue MainString = MainString + Mid(StringValue,2)+“ |”

Next上面的代码用于创建一个字符串,该字符串包含在过滤器中使用的所有条件值。

Range(“ A10”)。CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _ Cells(IntRow + 1,1)

上面的代码用于将可见行复制到指定的目标。

请遵循以下代码

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

如果您喜欢此博客,请在Facebook和Facebook上与您的朋友分享。

我们很希望收到您的来信,请让我们知道我们如何才能改善我们的工作并使您的工作更好。写信给我们[email protected]