2017-04-26 59 views
1

我在尝试抵消范围时遇到一些奇怪的行为。Excel-VBA:偏移的奇怪行为

在即时窗口在一个新的文件,我可以做到以下几点:

?Range("A15:A16").Offset(-8).Address 

返回:

$A$7:$A$8 

,因为它应该。

但是,在我目前的工作簿中,相同的代码只返回$ A $ 7。 下面的代码不工作,因为它应:

?Range("A15,A16").Offset(-8).Address 

(返回$ A $ 7,$ A $ 8)

?Range("A15:A17").Offset(-8).Address 

(返回$ A $ 7:$ A $ 9)。

有没有一个设置,我错过了,导致这种奇怪的行为?特别是因为它在新的工作簿中正常工作。

在此先感谢。

+0

如果A15:A16合并,那么它似乎复制了不需要的行为。 – Zerk

回答

2

我已经搜索了几天这个问题的答案,只要我发布了问题,我找到了解决方案。原来这些单元格被合并为2个集合。该偏移量仅返回合并集合的第一个单元格的地址。

+0

对于合并的原点单元格,可以使用Range(“A15”)。Offset(-8,0).Resize(2,1)' – Jeeped