2016-07-06 48 views
1

我有以下代碼如何解決vba中的運行時錯誤6?

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

TextBox3 = Value存在於Worksheets("calculation").Range("O4")的值。

問題是如果Range(O4)的值爲零,那麼它實質上意味着0/0,這就是爲什麼我得到運行時6,溢出錯誤。

有反正我可以用0替換0/0。

任何幫助,非常感謝。謝謝

回答

3

您可以使用IIF():

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

將返回在TextBox3值如果另一個是0.

+0

哇...像一個魅力工作......感謝噸 –

+0

有反正我可以顯示輸出爲「NA」或「 - 」或「NULL」 –

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 
+0

如果這適用於您,請接受一個綠色複選標記。 – Chrismas007

+0

非常感謝 –