我应该做什么范围?

What range should i do?

就奇怪,为什么我每次debug都会出现

Runtime Error 1004; Method 'Range' of object '_Global' failed

它会在第

行突出显示
 DataSH.Range("A2").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
            CriteriaRange:=Range("Data!$L:$L"), CopyToRange:=Range("Data!$N:$T"), _
            Unique:=False

如果编码是表格,范围应该是多少?范围参考主数据 sheet。谁能帮我?

Private Sub cmdContact_Click()
        Dim DataSH As Worksheet
        Set DataSH = Sheet1
        DataSH.Range("L8") = Me.cboHeader.Value
        DataSH.Range("L9") = Me.txtSearch.Text
        DataSH.Range("A2").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("Data!$L:$L"), CopyToRange:=Range("Data!$N:$T"), _
        Unique:=False
        lstEmployee.RowSource = Sheet1.Range("outdata").Address(external:=True)
    End Sub
Range("Data!$L:$L")

这个不合格的 Range 调用实际上 隐含地 通过 ActiveSheet 限定,通过一点 默认成员 [=29] =] 诡计和一点间接。为了简单起见,我们可以说这等价于:

ActiveSheet.Range("Data!__:__")

有问题:地址字符串是用 sheet 名称限定的,而我们要用该字符串获取的 Range 是从 ActiveSheet 中获取的。如果有一场比赛,我们很幸运。否则,繁荣。

我们到了。这个有用吗?

ActiveSheet.Range("Data!$L:$L")

因为这个示例代码会抛出您遇到的相同错误,原因相同:

Sheet1.Range("Sheet2!A1")