【发布时间】:2021-10-01 21:27:51
【问题描述】:
在特定工作表上定义范围时,Excel 会引发错误 1004
我在 Excel vba 中有两张表格: -表 A -表 B
范围表_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
也许我保护了我的工作表或类似的东西,因为我得到了错误: -> 1004“应用程序定义或对象定义错误”
令人惊讶的是,这不会引发错误,但 Rng.Select 或其他函数也不起作用:
Set Rng = Range(Rng.Address, Rng.offset(0,1).Address)
顺便说一句: 从 Sheet_B 到 Sheet_A 执行相同的操作效果很好
提前感谢您的帮助
【问题讨论】:
-
问题在于外部
Range隐含为Me.Range,即指代表A。您需要使用Sheets("Sheet_B")对其进行限定。或者在这种情况下只是Set Rng = Rng.Resize(2)。 -
@BigBen:你的意思是
...Resize(, 2)。但是你可以写成一行:Set Rng = Worksheets("Sheet_B").Range("A1").Resize(, 2).