我正在创建一个VB宏,它将“ 1 + 1”之类的字符串值转换为公式。
Cells(1, 1).Formula = "=" & Cells(1, 1).Value
但是,如果无法计算Value字符串,则会出现运行时错误'1004'。
我如何确定该字符串将成功转换为公式?
最佳答案
首先构造公式,然后对它使用评估方法。如果没有返回错误,则可以将其添加到单元格中。
Sub tester()
Dim f As String
f = "1+1"
Debug.Print f, IIf(FormulaOK(f), "OK", "not valid")
f = "1blah1"
Debug.Print f, IIf(FormulaOK(f), "OK", "not valid")
End Sub
Function FormulaOK(f As String) As Boolean
FormulaOK = Not IsError(Application.Evaluate(f))
End Function