如何使用引用另一个WS和变量范围的变量WS名称,使用MIN函数

时间:2017-11-16 02:03:46

标签: excel-vba vba excel

我有一个名为Stats的WS,我想用MINIMUMs填充一列。数据在同一个WB中,但在另一个名为Data的WS上。 数据是行,因此MIN calc将在范围B到IQ列上执行。 我需要为行14到1868计算MIN。

以下代码有效,但数据的名称和范围是硬编码的:

Worksheets("Stats").Range("B14:B1868").Formula = "=MIN(Data!B58:IQ58)"

所以我的问题是每个工作簿都有不同的数据工作表名称。我的宏必须适用于所有WB。

我已尝试过Indirect函数,此配置仅适用于一行数据,并使用相同的数字填充列的其余部分(请注意,$ A $ 2是包含数据的Worksheet名称的位置) :

Worksheets("Stats").Range("B14:B1868").Formula = "=MIN(Indirect($A$2&""!B58:IQ58"")"

我已经尝试了很多不同的配置,无法想出这个。我会得到一个名字或参考错误......它让我疯了,希望有人能帮助我!

提前致谢: - )

1 个答案:

答案 0 :(得分:0)

您可以像使用字符串文字一样轻松地使用单元格引用的值。

(似曾相识的感觉 - 我今天早上写的这是答案的一部分!)

所以,而不是将“数据”硬编码到公式中

Worksheets("Stats").Range("B14:B1868").Formula = "=MIN(Data!B58:IQ58)"

您可以插入单元格中的值

Worksheets("Stats").Range("B14:B1868").Formula = "=MIN('" & Worksheets("Stats").Range("A2").Value & "'!B58:IQ58)"

(我还在工作表名称周围添加了撇号,以防它包含空格或其他特殊字符。)