我有一个名为 Stats 的 WS,我想用 MINIMUM 填充一列。 数据位于同一个 WB 中,但在另一个名为 Data 的 WS 上。数据以行为单位,因此将对范围 B 到 IQ 列执行最小计算。我需要计算第 14 行到 1868 行的 MIN。
以下代码有效,但数据的名称和范围是硬编码的:
Worksheets("Stats").Range("B14:B1868").Formula = "=MIN(Data!B58:IQ58)"
所以我的问题是每个工作簿都有不同的数据工作表名称。 我的宏必须适用于所有 WB。
我尝试了间接函数,此配置仅适用于一行数据,并使用相同的数字填充列的其余部分(请注意,$A$2 是包含数据的工作表名称的位置(:
Worksheets("Stats").Range("B14:B1868").Formula = "=MIN(Indirect($A$2&""!B58:IQ58"")"
我已经尝试了许多不同的配置,但无法弄清楚这个。我会得到一个名字或一个参考错误...这让我发疯了,希望这里有人能帮助我!
提前感谢:-(
使用字符串文本一样轻松地使用单元格引用的值。
(那里有似曾相识的感觉 - 我今天早上写了作为答案的一部分!
因此,而不是将"数据"硬编码到公式中
Worksheets("Stats").Range("B14:B1868").Formula = "=MIN(Data!B58:IQ58)"
您可以从单元格中插入值
Worksheets("Stats").Range("B14:B1868").Formula = "=MIN('" & Worksheets("Stats").Range("A2").Value & "'!B58:IQ58)"
(我还在工作表名称周围添加了撇号,以防万一它包含空格或其他特殊字符。