我正在创建一个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

10-05 21:27