現在、[はい]、[いいえ]、または[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]
コメントを追加