如何在vba中解决运行时错误6?

时间:2016-07-06 18:50:28

标签: excel vba excel-vba

我有以下代码

TextBox50.Value = Round((CDbl(TextBox3.Value) / (CDbl(Worksheets("calculation").Range("O4").Value)) - 1) * 100, 1) & "%"

TextBox3 = ValueWorksheets("calculation").Range("O4")的值。

问题是如果Range(O4)的值为零,那么它本质上意味着0/0,这就是为什么我得到运行时6,溢出错误。

无论如何我可以用0替换0/0。

非常感谢任何帮助。谢谢

2 个答案:

答案 0 :(得分:3)

这样的事情应该适用于你有零除问题的情况:

If CDbl(Worksheets("calculation").Range("O4").Value) = 0 Then
   TextBox50.Value = (0 - 1) * 100, 1) & "%"
Else
    TextBox50.Value = Round((CDbl(TextBox3.Value) / (CDbl(Worksheets("calculation").Range("O4").Value)) - 1) * 100, 1) & "%"
End If

答案 1 :(得分:3)

您可以使用IIF():

TextBox50.Value = Round((CDbl(TextBox3.Value) / IIF(CDbl(Worksheets("calculation").Range("O4")=0,1,CDbl(Worksheets("calculation").Range("O4")))

如果另一个为0,则返回TextBox3中的值。