VBA USERFORMエラー6の回避策

フラニガンガ

現在、[はい]、[いいえ]、または[N / A]のオプションがあるコンボボックスがたくさんあります。次に、計算を実行して次のページに移動するコマンドボタンがあります。

Private Sub CommandButton2_Click()

Dim a As Long, b As Long

a = IIf(Cbx1_1.Value = "Yes", 1, 0) + IIf(Cbx1_2.Value = "Yes", 1, 0) +_
IIf(Cbx1_3.Value = "Yes", 1, 0) + IIf(Cbx1_4.Value = "Yes", 1, 0)

b = 4 - IIf(Cbx1_1.Value = "N/A", 1, 0) - IIf(Cbx1_2.Value = "N/A", 1, 0)_
- IIf(Cbx1_3.Value = "N/A", 1, 0) - IIf(Cbx1_4.Value = "N/A", 1, 0)
OUTBX1.Text = Format(a / b, "00.00%")
MultiPage1.Value = 1
End Sub

今私が経験している唯一の問題は、すべてのボックスが「N / A」としてチェックされている場合、0/0の問題が発生することです(エラー6:オーバーフロー)

私はExcelでこれを解決するためにERRORIF式を使用したであろうことを知っています。次の場合にVBAに次のことを伝える方法はありますか?

=ERRORIF (b=0) then MultiPage1.Value = 1 else 
    OUTBX1.Text = Format(a / b, "00.00%")
フラニガンガ

これに対する最終的な答えが次のようにコード化されるのを手伝ってくれてありがとう。

Private Sub CommandButton2_Click()

Dim a As Long, b As Long

a = IIf(Cbx1_1.Value = "Yes", 1, 0) + IIf(Cbx1_2.Value = "Yes", 1, 0) + IIf(Cbx1_3.Value = "Yes", 1, 0) + IIf(Cbx1_4.Value = "Yes", 1, 0)
b = 4 - IIf(Cbx1_1.Value = "N/A", 1, 0) - IIf(Cbx1_2.Value = "N/A", 1, 0) - IIf(Cbx1_3.Value = "N/A", 1, 0) - IIf(Cbx1_4.Value = "N/A", 1, 0)

If b = 0 Then
MultiPage1.Value = 1

Else
OUTBX1.Text = Format(a / b, "00.00%")
MultiPage1.Value = 1
End If
End Sub

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事