运行时错误450;为什么我不能调试它?

时间:2018-10-08 03:14:11

标签: excel vba excel-vba

为什么每当我记录一个宏并想要设置一个变量时-对话框都会自动说出错误的参数数量或无效的属性分配。有谁能够帮助我?因为我还是VBA新手。

Sub Advanced_Filter()
'
' Advanced_Filter Macro
'
' Keyboard Shortcut: Ctrl+Shift+A
'
    Set DataSH = Sheet1
        DataSH.Range("B8").CurrentRegion.Range.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
        "L8:L9"), CopyToRange:=Range("N8:T8"), Unique:=False
End Sub

1 个答案:

答案 0 :(得分:0)

如果Sheet1是活动工作表,则

Range(“ L8:L9”)和Range(“ N8:T8”)仅“属于” Sheet1。您需要为所有范围/单元格引用提供正确的父级工作表引用。

要简化多个任务,“使用...结束”块可能会有所帮助。请注意,在该块内,Range称为.Range。这将通过父工作表引用。

option explicit

Sub Advanced_Filter()
'
' Advanced_Filter Macro
'
' Keyboard Shortcut: Ctrl+Shift+A
'

    dim DataSH as worksheet
    Set DataSH = Sheet1

    with DataSH 
        .Range("B8").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
                     CriteriaRange:=.Range("L8:L9"), CopyToRange:=.Range("N8:T8"), _
                     Unique:=False
    end with

End Sub