设置范围结果在应用程序定义或对象定义错误,两种方法? VBA
当设置一个范围,并且活动工作表是不是=的参考我得到一个
应用程序定义的对象定义的错误
使用下面的这个方法:
Set Rng = Worksheets("Worksheet2").Range(Cells(2,2),Cells(2,3))
但是为什么当我使用这个方法时它工作:
Set Rng = Range(Worksheets("Worksheet2").Cells(2,2),Worksheets("Worksheet2").Cells(2,3))
只是想明白为什么最后的方法工作,但第一个不。
你打破了范围,只要Cells
和Range
应该被引用到同一个父。 如果您不介绍任何一个,他们的父母就是activesheet:
因此,要么明确指出他们两人的父母:
With Worksheets("worksheets2") Set Rng = .Range(.Cells(2, 2), .Cells(2, 3)) End With
或者让它们都为空(因此它将是ActiveSheet):
Set Rng = Range(Cells(2,2),Cells(2,3))
为了使这个工作Set Rng = Worksheets("Worksheet2").Range(Cells(2,2),Cells(2,3))
,你必须确保Worksheets2
是你的activesheet。
因为您不能有两个不同的工作表和单元格的引用。 所以它会是这样的
Set Rng = Worksheets("Worksheet2").Range(Worksheets("Worksheet2").Cells(2, 2), Worksheets("Worksheet2").Cells(2, 3))