由于我对Excel Macro缺乏经验,我正试图解决一个我实际上遇到的问题。我想基于Autofilter选择构建IF循环;如果是正反馈(“磁铁”自动过滤器选择),宏应显示一些以前隐藏的列。
这是我的实际宏,但我在第一个if
语句
Sub Hide()
If ActiveSheet.Range("$B$8:$V$20").AutoFilter Field:=6, Criteria1:="Magnet" Then
Range("I:N").EntireColumn.Hidden = False
Else
Range("I:N").EntireColumn.Hidden = True
End If
End Sub
答案 0 :(得分:1)
<强>逻辑:强>
试试这个
<强>代码强>
Sub Sample()
Dim ws As Worksheet
Dim af As AutoFilter
'~~> Change this to the relevant worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
With ws
'~~> Check if there is an Autofilter
If .AutoFilterMode Then
'~~> Set your autofilter object
Set af = .AutoFilter
'~~> Check if the 6th field is filtered
If af.Filters(6).On Then
'~~> Check if the criteria matches.
If af.Filters(6).Criteria1 = "=Magnet" Then
.Range("I:N").EntireColumn.Hidden = False
Else
.Range("I:N").EntireColumn.Hidden = False
End If
End If
End If
End With
End Sub
<强>截图强>