Excel 新手:在工作表中设置范围对象时出错

Excel 新手:在工作表中设置范围对象时出错,excel,vba,Excel,Vba,我是VBA领域的新手,我想知道为什么下面这行代码不起作用 我收到错误1004:对象范围工作表失败 Sub MMMatch() Dim oCell as Range Dim r_out as Range Dim r_in as Range Dim ws1 as worksheet Dim ws2 as worksheet Set ws1 = Worksheets("MM Limits") Set ws2= Worksheets("PivotTable") Set r_out= ws1.rang

我是VBA领域的新手,我想知道为什么下面这行代码不起作用

我收到错误1004:对象范围工作表失败

Sub MMMatch()
Dim oCell as Range
Dim r_out as Range
Dim r_in as Range
Dim ws1 as worksheet
Dim ws2 as worksheet

Set ws1 = Worksheets("MM Limits")
Set ws2= Worksheets("PivotTable")

Set r_out= ws1.range(Range("A2"),Range("A2").endxldown)
Set r_in=ws2.range(range("D2"),range("D2").endxldown)

end sub

我在最后一行的第二行发现了错误。虽然我可以在设置范围对象之前添加代码行以首先选择工作表,但我想知道为什么这行代码不起作用?

您必须将所有范围对象限定为其父工作表,并且
Endxldown
应该是
End(xlDown)


不合格的
Range
调用隐式引用
ActiveSheet
。使用您想要使用的工作表(
ws1
ws2
)对他们进行资格认证
Sub MMMatch()
Dim oCell As Range
Dim r_out As Range
Dim r_in As Range
Dim ws1 As Worksheet
Dim ws2 As Worksheet

Set ws1 = Worksheets("MM Limits")
Set ws2 = Worksheets("PivotTable")
'the Ranges inside the outer range must match the parent sheet
Set r_out = ws1.Range(ws1.Range("A2"), ws1.Range("A2").End(xlDown))
Set r_in = ws2.Range(ws2.Range("D2"), ws2.Range("D2").End(xlDown))

End Sub