2016-07-06 3 views
1

Iは、次のコードvbaでランタイムエラー6を解決するには?

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

Worksheets("calculation").Range("O4")TextBox3 = Value現在の値を有します。

Range(O4)の値が0の場合は、本質的に0/0を意味するため、ランタイム6、オーバーフローエラーが発生します。

は、とにかく、私はすべてのヘルプははるかに高く評価される0

で0/0を置き換えることができますあります。このような

答えて

3

あなたはIIFを(使用することができます):

TextBox3の値を返します
TextBox50.Value = Round((CDbl(TextBox3.Value)/IIF(CDbl(Worksheets("calculation").Range("O4")=0,1,CDbl(Worksheets("calculation").Range("O4"))) 

もう1つが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

ありがとうたくさんの仲間 –

関連する問題