VBA FIND時のIFの使い方について
VBA素人です。教えてください。
添付シートのようなデータがあるとします。
ユーザーフォームにテキストボックスを作成し、
(1)シート内の型式を型式BOXに手入力で入れる
(2)良品数を手入力で入れる
(3)日付を手入力で入れる(初期設定はDateをかえす)
(1)~(3)を入力し、入力コマンドボタンで型式と日付がFINDするセルに
良品数を入れるコードを下記作成しました。
シート内に対象の型式、日付があれば、うまく作動するのですが、
型式、日付両方が無い場合、もしくはどちらか片方が無い場合は、
うまく作動しません。
おそらく型式FIND~IF、日付FIND~IFの使い方が悪いと思います。
型式がシート内に無ければ、型式エラーとしマクロを抜ける。
型式があり、日付が無ければ、日付エラーでマクロを抜けるコードを教えてください。
なお、型式を手入力で入れていますが、シート内の("B:B")セルを選択すると自動で型式テキストボックスに入れる方法もご教示下さい。
Private Sub UserForm_Initialize()
型式BOX = ""'テキストボックス
良品BOX = ""'テキストボックス
日付BOX = Date'テキストボックス
型式BOX.SetFocus
End Sub
Private Sub 入力_Click()
Application.ScreenUpdating = False
Application.EnableEvents = False
If Len(型式BOX.Value) = 0 Then
MsgBox "型式が未選定です"
Cancel = True
ElseIf Len(良品BOX.Value) = 0 Then
MsgBox "良品が未入力です"
Cancel = True
ElseIf Len(日付BOX.Value) = 0 Then
MsgBox "日付が未入力です"
Cancel = True
Else
Dim a As Variant
a = 型式BOX.Value
Dim b As Date
b = 日付BOX.Value
On Error Resume Next
Columns("B:B").Select
ActiveSheet.Cells.Find(a, , , xlWhole, xlByRows, xlNext, False).Select
X = ActiveCell.Row
If Err = 91 Then
MsgBox (prompt) & a & "の型式はありません", _
(vbOKOnly + vbExclamation), ("型式検索結果")
Err.Clear
End If
On Error Resume Next
Rows("1:1").Select
ActiveSheet.Cells.Find(b, , , xlWhole, xlByColumns, xlNext, False).Select
Y = ActiveCell.Column
If Err = 91 Then
MsgBox (prompt) & b & "の日付はありません", _
(vbOKOnly + vbExclamation), ("日付検索結果")
Err.Clear
End If
Cells(X, Y) = 良品BOX.Value
End If
End Sub
お礼
いろいろな方法を教えていただき大変勉強になります。 まだ全て読み終わってはいませんが、追加で教えていただいた方法で進められそうです。 IEの終了のことなども、丁寧に教えていただき助かりました。 ありがとうございました!