如何合并Excel中VBA中的不连续select(使用Ctrl时)

我试图用我的代码检索一些单元格地址。 但是,由于select是不连续的,似乎是这样的。细胞不能很好地工作。

正如你在截图中看到的那样,我要求用户select两行,select的是黄色区域(行号7和9)
截图excel文件

当input我的代码时:

Sub test() Dim rangeselected As range Set rangeselected = Application.InputBox("Select the quarters range", "Obtain Range Object", Type:=8) Debug.Print rangeselected .Cells(1, 1).Address Debug.Print rangeselected .Cells(2, 1).Address End Sub 

我以为我将作为结果debug.print命令:E7&E9,而是我得到E7&E8

我不明白为什么我会得到第一个好的结果,而不是第二个。

我知道,为了获得好的结果,我应该写:

 Debug.Print rangeselected .Cells(3, 1).Address 

但是我能做些什么来让行在范围selectvariables中相互“跟随”?

因为在select中只有两行,所以我有点困惑。 我希望我的问题很清楚,先谢谢你的时间。

范围对象的Cells(r, c)属性的作用非常简单,从范围的开始处偏移r ans。 你甚至可以给偏移超出范围!

显然,这不足以遍历Multi-area range 。 那么,解决scheme是遍历Multi-area range.areas

 Dim rangeselected As range Set rangeselected = Application.InputBox("Select the quarters range", "Obtain Range Object", Type:=8) For each area in rangeselected.Areas For each cel in area.Cells '<-- could be also area.Rows, area.Columns... Next cel Next area