0
私は現在、はい、いいえまたはN/Aのオプションを持つコンボボックスの束を持っています 次に計算を実行し、次のページに移動するコマンドボタンがありますVBA USER FORMエラー6回避する
私が持つことを知っている:
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式を使用していました。
=ERRORIF (b=0) then MultiPage1.Value = 1 else
OUTBX1.Text = Format(a/b, "00.00%")
あなたが使用して試すことができます[Application.WorksheetFunction私があればというVBAを伝えることができる方法はあります.IfError()](https://msdn.microsoft.com/en-us/vba/excel-vba/articles/worksheetfunction-iferror-method-excel)または何らかの[エラー処理](http://www.cpearson .com/excel/errorhandling.htm) – danieltakeshi
私は混乱しています。なぜ単純なIF文を使わないのですか? @FunThomas; – FunThomas
;ここの解決策は簡単です。 'IF a = 0またはb = 0、else multipage1.value .... ' – Luuklag