过滤表内的单元格值

时间:2020-08-04 07:30:18

标签: excel vba

我有一张桌子,从A2到A7。单元格A1不属于该表。

只要单元格A1为空,下面的宏就可以正常工作,但是当我在单元格A1中输入任何值时,宏就会停止工作。 VBA调试器说:无法运行Rang的AutoFilter方法(错误代码1004)。

Public Sub FilterOnCellValue()
    Dim nField As Long
    With ActiveCell
        nField = .Column - .CurrentRegion.Cells(1).Column + 1
        .CurrentRegion.AutoFilter Field:=nField, Criteria1:=.Value
    End With
End Sub

问题:如何限制宏仅在表格内进行过滤?

enter image description here enter image description here

更新: 我想在所有表和所有文件中而不是在某个表中使用此宏。有什么解决办法吗?

1 个答案:

答案 0 :(得分:0)

随心所欲选择一个

  1. 给表命名,并使用table.range.filter而不是CurrentRegion。 ActiveSheet.ListObjects("mytable").Range.AutoFilter

  2. 在A1和您的表格之间插入空白行和隐藏行