我知道如何做像这样的范围D3:D15
。但我已经开始使用引用和地址,所以我将这些起点和终点作为地址。当我需要将范围输入到另一个公式中时,我不知道如何使用这些地址指定范围,例如SUM
。
我希望只放一个冒号(“:“)会做同样的事情,但是事实并非如此。
我正在我的真实电子表格中查找这些值,但为了简单起见,假设任何硬编码的数字实际上都是其他计算的结果。对于类似的东西E3:J7
,我想要:
地址(3,5):地址(7,10)
答案1
您提到了“另一个公式”,所以我猜您想在工作表公式中执行此操作(而不是在 VBA 函数或子例程中)。让我们从小事做起。Excel 支持 A1 (一个) 样式的引用和 R1C1 (RnCn) 样式的引用。您使用的所有示例(D3
、、、等)都是 A1 样式的引用——一D15
列E3
J7
信(或者可能是字母序列;列 X
、、Y
和 Z
后跟 AA
、、、等)后跟行号。R1C1 样式的引用几乎是不AB
言AC
自明的——它们由行号和列构成数字,由字母 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