数値のセルに文字列をいれるとVBAがこけてしまいます。
入寮制限をかけたいのですが、on errorのかけ方がわかりません。

どこでこけるかというと
acount(0) = Format(Cells(i + 1, 6).Value) * Format(Cells(i + 1, 7).Value)
acount(1) = acount(0) + acount(1) '原価*数量=部品原価
acount(2) = Format(Cells(i, 6).Value) * Format(Cells(i, 7).Value)
acount(3) = acount(2) + acount(3) '売上単価*数量=部品代
acount(4) = Format(Cells(i, 9).Value)
acount(5) = acount(4) + acount(5) '工賃(売上)
acount(6) = Format(Cells(i + 1, 9).Value)
acount(7) = acount(6) + acount(7) '工賃(原価)

というような計算式において、数値が入力されていないと
計算ができず、こけてしまいます。

A 回答 (1件)

On Error Goto ~は始めのほうで使います。



Sub Test_Sample()
Dim ??? as ????
On Error GoTo ErrorHandle

 '処理

Exit Sub

ErrorHandle:
 'エラーが発生した時の処理
End Sub
エラーが発生した時の処理は例えば、メッセージボックス等を表示してどこが間違ってるかをいったりするとか。
処理の中にStr="~が間違っています"というようなのを代入するコードをいれます。

また別の方法で、それが数値として使えるかどうか判断するには、IsNumeric関数を使います。

If IsNumeric(A) Then
msgbox("数値です")
else
msgbox("数値ではありません")
End If

というコードがあったとして、
A="123" だと「数値です」と表示され、
A="アイウ" だと「数値ではありません」と表示されます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報