前提
初心者です。
コマンドボタンを押すと元データを集計してメッセージボックスに表示させるコードを書いて正しい結果が表示されています。
それに追加で、元データに空白があった時にそれを知らせるメッセージを表示させて、それ以上先の処理に進まないようにしたいです。
困っていること
下記のコードを単体で実行すると正しい結果が表示されます。
ただ、もともとある「コマンドボタンを押すと元データを集計してメッセージボックスに表示させるコード」の中に埋め込むとその処理がスルーされてしまいます。
順番としては
①変数を宣言
↓
②元データに空白があることを知らせるループ(下記コードを挿入した)
↓
③元データを集計してメッセージボックスに表示(本処理)
以上のような流れになっています。
もともと①→③で正しく機能していました。
②単体では正しい結果が返されますが、
もとのコードに挿入しても②の処理を飛ばしてしまいます。
原因がわからないのですが、教えてもらえると助かります。
該当のソースコード
VBA
1 Sub CommandButton1_Click() 2 3 Dim WEM As String 4 Dim Pa As String 5 Dim i As Long 6 Dim j As Long 7 8 9 WEM = CLng(DateValue(TextBox1.Value)) & "WE" 10 Pa = CLng(DateValue(TextBox1.Value)) & "a" 11 12 For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row 13 For j = 5 To 10 14 If Worksheets("form1").Cells(i, j).Value = "" Then 15 MsgBox "form1に抜けがあります。正しく入力してください。" 16 Exit Sub 17 End If 18 Next 19 Next 20 21 On Error GoTo ErrorHandler '日付が正しく入力されないとエラーになるので ErrorHandlerに飛ぶ 22 MsgBox "報告全数 : " & WorksheetFunction.SumIf(Range("b:b"), Cells(2, 11), Range("d:d")) & vbCrLf & _ 23 "出席者数 : " & _ 24 WorksheetFunction.VLookup(WEM, Worksheets("form2").Range("C:J"), 8, False) & vbCrLf & _ 25 "----------------------------" & vbCrLf & _ 26 "Paの数 : " & WorksheetFunction.VLookup(Pa, Range("A:I"), 4, False) & vbCrLf & _ 27 "Pa1 : " & WorksheetFunction.VLookup(Pa, Range("A:I"), 5, False) & vbCrLf & _ 28 "Pa2 : " & WorksheetFunction.VLookup(Pa, Range("A:I"), 6, False) & vbCrLf & _ 29 "Pa3 : " & WorksheetFunction.VLookup(Pa, Range("A:I"), 7, False) & vbCrLf & _ 30 "Pa4 : " & WorksheetFunction.VLookup(Pa, Range("A:I"), 8, False) & vbCrLf & _ 31 "Pa5 : " & WorksheetFunction.VLookup(Pa, Range("A:I"), 9, False), vbOKOnly, “ Pa " & Format(TextBox1.Value, "yyyy年mm月") 32 Exit Sub 33ErrorHandler: 34 MsgBox "年月日が正しく入力されませんでした" 35End Sub
回答2件
あなたの回答
tips
プレビュー