想知道,为什么每次调试它都会出现
运行时错误1004;对象“ _Global”的方法“范围”失败
,它将在行
中突出显示 DataSH.Range("A2").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("Data!$L$8:$L$9"), CopyToRange:=Range("Data!$N$8:$T$8"), _
Unique:=False
如果编码采用形式,则范围应为多少?范围请参考主数据表。谁能帮我?
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$8:$L$9"), CopyToRange:=Range("Data!$N$8:$T$8"), _
Unique:=False
lstEmployee.RowSource = Sheet1.Range("outdata").Address(external:=True)
End Sub
答案 0 :(得分:1)
Range("Data!$L$8:$L$9")
此不合格的Range
调用实际上是隐式合格的ActiveSheet
,这是通过一些默认成员的骗术和一些间接的操作。为了简单起见,我们可以说这是等效的:
ActiveSheet.Range("Data!__:__")
有一个问题:地址字符串用工作表名称限定,而我们要使用的Range
则取自ActiveSheet
是什么。如果有比赛,我们很幸运。否则,繁荣。
就在这里。这行得通吗?
ActiveSheet.Range("Data!$L$8:$L$9")
由于相同的原因,此示例代码会引发相同的错误:
Sheet1.Range("Sheet2!A1")