显示在Excel中使用VBA过滤后自动筛选标准
在本文中,我们将创建一个宏来显示自动筛选中使用的条件。
原始数据由客户详细信息组成,其中包括姓名,电话号码,电子邮件ID和公司名称。
我们在“公司”列中应用了一个过滤器,现在我们想要确定应用该过滤器的公司的名称。
我们将单击“分离过滤器数据”按钮以获取应用过滤器的条件。
代码说明
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]