在Excel VBA中连续调用两次(或更多)子例程时出现错误1004

在Excel VBA中连续调用两次(或更多)子例程时出现错误1004,vba,excel,Vba,Excel,我与这个错误斗争了大约一个半小时,一直没有找到答案。也许你能帮我一下 我有一个短的子节点,它在一张表中定位一个标记为“Filter”的列。它为该列启用自动过滤器并将其隐藏 Sub Test1() Call FilterHide(Worksheets("Integration")) Call FilterHide(Worksheets("Integration Matrix")) End Sub Sub FilterHide(ByVal target As Worksheet

我与这个错误斗争了大约一个半小时,一直没有找到答案。也许你能帮我一下

我有一个短的子节点,它在一张表中定位一个标记为“Filter”的列。它为该列启用自动过滤器并将其隐藏

Sub Test1()

    Call FilterHide(Worksheets("Integration"))
    Call FilterHide(Worksheets("Integration Matrix"))

End Sub

Sub FilterHide(ByVal target As Worksheet)
'
'Searches for filter column, then autofilters selection to show only "Show"

    Dim clm As Integer

    If IsError(Application.Match("Filter", target.Range("1:1"), 0)) Then
        Exit Sub
    End If

    clm = Application.Match("Filter", target.Range("1:1"), 0)
    target.Range(Columns(clm), Columns(clm)).AutoFilter Field:=1, Criteria1:="Show"
    target.Range(Columns(clm), Columns(clm)).EntireColumn.Hidden = True

End Sub
“FilterHide()”只要我调用一次就可以正常工作。但是,当我尝试从另一个具有不同工作表的sub调用它两次时,它会中断(例如上面的“Test1()”)。我得到“运行时错误1004:object'\u Worsksheet'的方法'Range'失败”

target.Range(Columns(clm), Columns(clm)).AutoFilter Field:=1, Criteria1:="Show"
如果一次只运行一个,我可以为所有工作表成功运行
FilterHide()
。只有当我多次调用它时,才会出现错误。我的最终目标是创建一个
工作表\u Deactivate()

target.Range(Columns(clm), Columns(clm)).AutoFilter 
此处,非限定的
列(clm)
将引用活动表,而不是
目标

你需要:

target.Range(target.Columns(clm), target.Columns(clm)).AutoFilter
但这只限于

target.Columns(clm).AutoFilter

这就解决了问题。谢谢你的快速回复,蒂姆。