从另一个工作表设置范围



当在特定的工作表上定义范围时,Excel抛出错误1004


我有两个sheet:
-Sheet A
-Sheet B

Sheet_A范围:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng as Range
Set Rng = Sheets("Sheet_B").Range("A1")
Set Rng = Range(Rng, Rng.offset(0,1))
End Sub

也许我保护了我的Sheet或者类似的东西,因为我得到:

1004"应用程序定义或对象定义的错误";

令人惊讶的是,这不会抛出错误,但像Rng.Select或其他函数也不能工作:

Set Rng = Range(Rng.Address, Rng.offset(0,1).Address)

顺便说一下:
从Sheet_B到Sheet_A做同样的工作。

正如@BigBen在他的评论中已经暗示的那样,由于您试图在另一个工作表的范围之间获取一个工作表上的范围,因此会引发错误。Excel不能这样做。

由于该代码位于表单A后面的代码中,因此下面的代码与您的代码等效。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng as Range
Set Rng = ActiveWorkbook.Sheets("Sheet_B").Range("A1")
Set Rng = Me.Range(Rng, Rng.offset(0,1))
End Sub

这里Me指表a。

为了获得可能期望的结果,您可以显式地使用引用表B的东西来限定对Range的调用,例如ActiveWorkbook.Sheets("Sheet_B"),Rng.Parent或之前保存的一些引用,或者您可以以不同的方式调整范围。后者的一个例子已经在评论中提到了,使用Resize

相关内容

  • 没有找到相关文章

最新更新