Excel引用要在公式中使用的单元格条目

时间:2015-07-17 13:42:15

标签: excel vba excel-vba excel-formula

我不确定该怎样称呼我正在尝试做什么,所以搜索它一直很难。基本上我有一个方程表,每行有不同的方程/引用不同的列,但它们都引用相同的行范围。即Eq。 A =平均值(A200:A400),Eq。 B =总和(C200:C400)等......

从文件到文件的行范围会发生变化,所以我想要做的就是将开始行和结束行输入单元格并让它们自动填充方程式。如果有人能告诉我如何只为一个单元格而不是整个表格,我可以从那里弄明白。

谢谢!

3 个答案:

答案 0 :(得分:0)

听起来像INDIRECT函数可以实现这一点。它允许您输入要解释为单元格引用的文本。

例如,假设您希望范围覆盖给定工作表的A200:A400,并且您希望在该工作表的单元格A1中设置该范围。在单元格A1中,您只需键入“A200:A400”,然后在实际的公式中,您将拥有:

=AVERAGE(INDIRECT(A1))

你显然可以将其进一步分解,但这就是它的概念。

答案 1 :(得分:0)

您可以创建一个包含几个文本框的表单。输入开始和结束行。然后你的代码可以通过并输入公式。

像这样。

Dim lRow as long
Dim lEnd as long

lRow = val(txtBoxStartRow.text)
lEnd = val(txtBoxEndRow.text)

ws.Range("A" & lEnd + 1).Formula = "=average(A" & lRow & ":A" & lEnd & ")"
ws.Range("C" & lEnd + 1).Formula = "=average(C" & lRow & ":C" & lEnd & ")"

答案 2 :(得分:0)

这应该做:

=AVERAGE(INDIRECT(ADDRESS($B$1;ROW())):INDIRECT(ADDRESS($B$2;ROW())))

在该代码中,我假设单元格B1和B2包含限制(您可以用硬编号替换这些引用),使用您的示例:B1 = 200和B2 = 400。

如果您将此代码放在任何行中,您将获得平均值(“rowNumber”200:“rowNumber”400)。

Address()为您提供正确的范围参考 Indirect()从中获取范围 然后你可以把它包装成你喜欢的任何功能。