424错误。有人会告诉我为什么范围变量在剪切后消失了吗?
with sheets(1)
Dim des as range
set des = .range("A15")
.range("A1:A3").cut des
msgbox(des.row+5)
end with
答案 0 :(得分:4)
Range
对象存储对特定单元格的引用,而不是对特定地址的引用。当引用的单元格四处移动时,Range
对象将跟随。例如。如果您存储了Range("B1")
,然后在A和B之间插入一列,则您的变量现在将具有Range("C1")
,因为您的B1
已移到右侧。
当跟踪的单元格不再存在时,Range
实例将变得不可用。
剪切将完全替换实际的单元,而不是简单地覆盖其内容,因此Range
所跟踪的单元不再存在,并且其他某些单元现在将采用A15
的地址。不过,那是一个不同的单元格,因此您的Range
实例不见了。
一个值得注意的例外是仅销毁Range
的一部分。在这种情况下,Range
接受新的单元格并保持其形状。例如。如果您存储了Range("A15:A20")
,并在Range("A1:A3")
上剪切了A15
,则结果范围仍为A15:A20
。
答案 1 :(得分:0)
似乎https:myapp.mydomain.com/?envelopeId=[[envelopeId]]&recipientId=[[recipientId]]&recipientName=[[recipientName]]& recipientEmail=[[recipientEmail]]
由于@GSerg原因正在清除范围变量。
使用此代码有效,但是如果最后将其破坏,则该变量将一直存在,直到发生粘贴为止。
.paste
如果将消息框移至粘贴之后,即使未像在剪切中那样使用它,它也会清除With Sheets(1)
Set des = .Range("A15")
.Range("A1:A3").Cut
des.Cells(1, 1).Select
MsgBox (des.Row + 5)
ActiveSheet.Paste
End With
。
我将做更多调查。 des
对象仍然以des
的形式存在,但没有填充。
此方法还可以完成剪切操作
range