gpt4 book ai didi

excel - 如何在 Excel 上的 VBA 范围内合并不连续的选择(使用 Ctrl 时)

转载 作者:行者123 更新时间:2023-12-04 20:36:47 24 4
gpt4 key购买 nike

我正在尝试使用我的代码检索一些单元格地址。但是由于选择是不连续的,因此 .Cells 似乎效果不佳。

正如您在屏幕截图中看到的,我要求用户选择两行,选择的是黄色区域(第 7 行和第 9 行)
screenshot excel file

输入我的代码时:

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

但是我该怎么做才能让行在 rangeselected 变量中“跟随”彼此?

因为在选择中只有两行所以我有点困惑。
我希望我的问题足够清楚,提前感谢您的时间。

最佳答案

Cells(r, c)范围对象的属性作用非常简单,将 r 和 c 从范围的开头偏移。您甚至可以给出超出范围的偏移量!

显然,这不足以迭代 Multi-area range .好吧,解决方案是遍历 .areasMulti-area range .

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

关于excel - 如何在 Excel 上的 VBA 范围内合并不连续的选择(使用 Ctrl 时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41278865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com