我有一个名为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"")"
我已经尝试了很多不同的配置,无法想出这个。我会得到一个名字或参考错误......它让我疯了,希望有人能帮助我!
提前致谢: - )
答案 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)"
(我还在工作表名称周围添加了撇号,以防它包含空格或其他特殊字符。)