如何检查VBA公式是否正确
我正在创建一个 VB 宏,它将“1+1”等字符串值转换为公式。
Cells(1, 1).Formula = "=" & Cells(1, 1).Value
但如果无法计算值字符串,则会出现运行时错误“1004”。
我如何确定字符串会成功转换为公式?
I'm creating a VB macro that converts string values like "1+1" to formulas.
Cells(1, 1).Formula = "=" & Cells(1, 1).Value
But if Value string can't be calculated i have Run-time Error '1004'.
How can i be sure that string would convert to formula successfully?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
首先构造公式,然后对其使用 Evaluate 方法。如果它没有返回错误,那么您可以将其添加到单元格中。
First construct the formula and then use the Evaluate method on it. If it doesn't return an error then you can add it to the cell.
使用 Evaluate 有 2 个问题:
更好的方法是使用 Application.ConvertFormula 并查看是否返回错误。使用:
Using Evaluate has 2 issues:
A better approach is to use Application.ConvertFormula and see if that returns an error. Use:
如果您需要对单元格的值进行完全验证,那么正则表达式模式可能就是这样的 - 这将确保仅使用与您想要的模式匹配的单元格(放置等号可能仍然适用于具有不良格式的单元格,并且您可能想避免这种情况,因为跟踪更改将很困难)。
可以安全地假设这应该适用于带有某种运算符(例如加号或减号)的数值数据吗?
If you need to do full validation of the cell's value then a regex pattern might just be the thing - that'll ensure that only cells matching the pattern you want are used (placing an equal sign might still work in cells with indesirable formats and you might want to avoid that since tracking the changes will be hard).
Is it safe to assume that this should apply to numerical data with some kind of operator like plus or minus?