我将一个范围设置为另一个。当我删除原始范围时,另一个被清除。为什么?

时间:2014-10-28 12:25:23

标签: vba excel-vba excel

我将一个范围设置为另一个范围:

'保存行信息

Set rRow = loSrc.ListRows(lListRowIndex).Range

当我删除源时,rRow被清除。

'Delete row from table
loSrc.ListRows(lListRowIndex).Delete

为什么会这样?如果我写的话,这不会发生:

iNumber = iSource + 1
iSource is nothing

更重要的是,如何阻止这种情况发生,以便即使在执行loSrc.ListRows(lListRowIndex).Delete之后我也可以使用rRow。

1 个答案:

答案 0 :(得分:0)

Matteo NNZ的评论帮助我理解这一点。

Set keywork创建对象的引用。删除对象时,引用也会受到影响。

使用

Dim vRow() as variant

而不是

rRow as range

我能写:

vRow = loSrc.ListRows(lListRowIndex).Range
loSrc.ListRows(lListRowIndex).Delete

并让vRow保留其值