如何通过Excel VBA程序执行指定行列位置单元格内的公式
VBA执行单元格内置公式解决方案
以下是可直接使用的VBA代码,支持读取任意指定行列位置单元格内存储的公式文本并执行计算:
Sub RunFormulaFromCell() ' 按需修改下方两个参数为目标单元格的行号、列号 Dim targetRow As Long: targetRow = 1 Dim targetCol As Long: targetCol = 1 ' 读取单元格内的公式文本 Dim formulaStr As String formulaStr = Trim(Cells(targetRow, targetCol).Value) If formulaStr = "" Then MsgBox "指定单元格无内容", vbExclamation Exit Sub End If ' 自动补全公式前缀 If Left(formulaStr, 1) <> "=" Then formulaStr = "=" & formulaStr ' 执行公式,结果输出到原单元格右侧,如需覆盖原内容可修改目标位置 Cells(targetRow, targetCol + 1).Formula2 = formulaStr End Sub
使用说明
- 代码中的
targetRow对应行号、targetCol对应列号,比如要读取A3单元格的内容,就设置targetRow = 3、targetCol = 1 - 如果你的Excel版本是2019及更早,不支持动态数组溢出,将代码中的
Formula2替换为Formula即可 - 单元格内的公式不需要额外加
=前缀,代码会自动识别补全,直接写RANDARRAY(rows;cols;min;max;TRUE)也可以正常执行
注意事项
- 请确保单元格内存储的公式语法符合Excel规范,参数分隔符和你平时手动输入公式时使用的一致即可
- 如果公式涉及引用其他工作表、工作簿内容,需要确保对应引用路径正确无误
内容的提问来源于stack exchange,提问作者Werner Alber
相关产品推荐
相关产品推荐

