2017-04-26 82 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