首页 > 解决方案 > 如何引用范围地址中的单个单元格,例如“$A$2,$C$2,$E$2”

问题描述

我是 Excel VBA 的新手,有一个关于引用范围值的菜鸟问题。幸运的是,我的问题很小。

这是我的 Excel VBA 代码示例

Sub Testing()

Set WS = Excel.ActiveSheet : Set R = WS.Range("$C$2,$E$2,$G$2")

R.Select 'Success, highlights only the cells defined by my range address

Debug.Print R.Cells(, 1), R.Cells(, 2), R.Cells(, 3)

'Returns the values for $C$2, $D$2 and $E$2 - not what I wanted

End Sub

由于该R.Select方法只知道突出显示我的地址中的 3 个单元格,是否有一个代码解决方案让R对象只返回我的三个单元格中的值并清除其间的其他内容?

非常感谢您的帮助。我只是想启动。

标签: excelvba

解决方案


当您创建由不连续范围组成的范围时,每个单独的范围都由不同的区域表示。

因此,对于您的示例,要返回选择中的单元格,您需要以下内容:

With R.Cells
    Debug.Print .Areas(1), .Areas(2), .Areas(3)
End With

如在您的示例中,当您未指定Area时,默认值为Areas(1),因此您将返回第一个区域中第一个单元格的偏移量。


推荐阅读