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

我有以下代码

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

TextBox3 = Value的值TextBox3 = Value Worksheets("calculation").Range("O4") TextBox3 = Value Worksheets("calculation").Range("O4")

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

无论如何,我可以用0replace0/0。

任何帮助深表感谢。 谢谢

你可以使用IIF():

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

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

像这样的东西应该适用于你有零分的问题:

 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