以编程方式在 Excel 中选择一个范围

以编程方式在 Excel 中选择一个范围

我知道如何做像这样的范围D3:D15。但我已经开始使用引用和地址,所以我将这些起点和终点作为地址。当我需要将范围输入到另一个公式中时,我不知道如何使用这些地址指定范围,例如SUM

我希望只放一个冒号(““)会做同样的事情,但是事实并非如此。

我正在我的真实电子表格中查找这些值,但为了简单起见,假设任何硬编码的数字实际上都是其他计算的结果。对于类似的东西E3:J7,我想要:

地址(3,5):地址(7,10)

答案1

您提到了“另一个公式”,所以我猜您想在工作表公式中执行此操作(而不是在 VBA 函数或子例程中)。让我们从小事做起。Excel 支持 A1 (一个) 样式的引用和 R1C1 (RnCn) 样式的引用。您使用的所有示例(D3、、、等)都是 A1 样式的引用——一D15E3J7(或者可能是字母序列;列 X、、Y和 Z后跟 AA、、、等)后跟行号。R1C1 样式的引用几乎是不ABAC自明的——它们由行号和列构成数字,由字母 R和 分隔C。因此E3相当于R3C5(行 3,列 5) 并且J7相当于R7C10

我希望你能多说一点你已经在做的事情,这样我就知道我不需要向你解释什么了。我希望你知道,在公式中,INDIRECT("E3")或多或少等同于E3,只是当你调用 时INDIRECT,字符串参数可以计算。也许你不知道

INDIRECT("R3C5", FALSE)

类似地等同于E3

INDIRECT只提供对单个单元格的引用。要从该单元格转到某个范围,我们使用函数OFFSET。其一般格式为

OFFSET(基本单元格引用,行偏移,列偏移量,高度(行),宽度(列))

因此,为了得到E3:J7,我们

OFFSET(INDIRECT("R" & 3 & "C" & 5, FALSE),  0,  0,  7-3+1,  10-5+1)

其中所有数字都可以是公式(例如,对其他单元格的引用)。(注意:+1's 用于标准“栅栏柱问题”——从第 3 行开始到第 7 行的范围是 5 行高,而不是 4 行。)上述表达式可用于任何可以使用简单范围的地方;例如,作为 的参数SUM


解决问题的另一种方法可能是使用命名单元格。如果您将单元格E3命名为Fred,并将单元格J7命名为Barney,则可以说SUM(Fred:Barney)

答案2

看看细胞命令。您可以用数值指定行和列。

Sub test()
' select range E3 to J3
Range(Cells(3, 5), Cells(3, 10)).Select

End Sub

相关内容