可以呀。利用EVALUATE宏命令可以的。
方法一:利用名称管理器。
如图,打开名称管理器,新建个名称比如aa
引用位置上输入=EVALUATE(Sheet1!$A$1:$A$1001)
点击确定,
然后在B列输入=aa
下拉填充。
方法二,编辑自定义函数。
或者ALT+F11打开VBA编辑器
插入--模块,插入--过程
名称随便编写一个。
比如aa,类型选择函数
在函数中复制下面的语句
Public Function aa(rg As Range)
aa = Evaluate(rg.Text)
End Function
在你的目标单元格输入=aa(b2)下拉填充就ok啦。
建议编辑一个自定义函数,利用 VBA 中的 Evaluate 方法专门计算这样的文本公式。
比如,创建一个标准模块,使用下面类似的 VBA 代码,然后在 C2 单元格中直接输入公式 =Cal(A2) 就行了:
Option Explicit
'Option Private Module
Public Function Cal(ByVal cel As String) As Variant
On Error Resume Next
Cal = Evaluate(cel)
End Function
如果只需要在该工作簿中使用的话,就把 “Option Private Module” 前面注释用的 “'”去掉就行了。
这个公式比较困难。建议把数量一列用多个列替换,这些列的宽度设小并把网格线取消,不影响外观的。总量一列的公式设成sum。
Fyi