現在、「SHEET1」と「SHEET2」のブックで作業しています。今、SHEET1またはSHEET2に空のセルがある場合、必須セルに値を追加するようにユーザーに求めます。空のときにセルの位置をアクティブにする方法
問題:欠落しているセルがSHEET1用である場合は、SHEET2を有効にしたくありません。ここで
は、以下の私のコードです:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim maxrow As Long
Dim maxrow2 As Long
Dim errcnt As Long
Dim errcnt2 As Long
ThisWorkbook.Sheets("SHEET1").Select
ThisWorkbook.Sheets("SHEET1").Cells(1, 1).Select
Range("A1048576").Select
Selection.End(xlUp).Select
maxrow = Selection.Row
For I = 2 To maxrow
If ThisWorkbook.Sheets("SHEET1").Cells(I, 1).Value = "YES" Then
For j = 2 To 10
If ThisWorkbook.Sheets("SHEET1").Cells(I, j).Value = "" Then
ThisWorkbook.Sheets("SHEET1").Select
ThisWorkbook.Sheets("SHEET1").Cells(I, j).Activate
errcnt = errcnt + 1
End If
Next j
End If
If ThisWorkbook.Sheets("SHEET1").Cells(I, 1).Value = "NO" Then
For j = 2 To 10
If ThisWorkbook.Sheets("SHEET1").Cells(I, j).Value = "" Then
ThisWorkbook.Sheets("SHEET1").Select
ThisWorkbook.Sheets("SHEET1").Cells(I, j).Activate
errcnt = errcnt + 1
End If
Next j
End If
Next I
If errcnt > 0 Then
MsgBox "There are " & errcnt & " fields missing", vbExclamation, "Missing Value"
Cancel = True
Else
End If
ThisWorkbook.Sheets("SHEET2").Select
ThisWorkbook.Sheets("SHEET2").Cells(1, 1).Select
Range("A1048576").Select
Selection.End(xlUp).Select
maxrow2 = Selection.Row
For X = 2 To maxrow2
If ThisWorkbook.Sheets("SHEET2").Cells(X, 1).Value = "YES" Or ThisWorkbook.Sheets("SHEET2").Cells(X, 1).Value = "NO" Then
For j = 2 To 10
If ThisWorkbook.Sheets("SHEET2").Cells(X, j).Value = "" Then
ThisWorkbook.Sheets("SHEET2").Select
ThisWorkbook.Sheets("SHEET2").Cells(X, j).Activate
errcnt2 = errcnt2 + 1
End If
Next j
End If
Next X
If errcnt2 > 0 Then
MsgBox "There are " & errcnt & " fields missing", vbExclamation, "Missing Value"
Cancel = True
Else
End If
End Sub
私はこれが原因で、このコードであると信じて:
ThisWorkbook.Sheets( "シート2")、これに代えて
あなたはあなたが何を得ているのかを述べなかったし、あなたは質問しなかった。 –
ここに@ScottCranerがあります: - そのセルに欠損値があり、そのセルにリダイレクトするように要求しますが、メッセージボックスをクリックするとSHEET2にリダイレクトされます。 SHEET2にリダイレクトしないでください – PeterS
レコーダーコードがたくさんあります。この情報を利用してください。http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros ?rq = 1 – Rdster