Макрос проверки данных Excel VBA
Я пытаюсь создать макрос, который проверяет, заполнил ли пользователь свою строку. Например, если пользователь начинает вводить в ячейку A1, макрос проверяет, заполнены ли ячейки в одной строке, если пустой пользователь не может закрыть Excel до того, как будут заполнены все пробелы.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim rsave As Range
Dim cell As Range
Set rsave = Sheet1.Range("a1:i1")
For Each cell In rsave
If cell = "" Then
Dim missdata
missdata = MsgBox("missing data", vbOKOnly, "Missing Data")
Cancel = True
cell.Select
Exit For
End If
Next cell
End Sub
1 ответ
Решение
Чтобы выполнить это для более чем одной строки, используйте:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim rsave As Range, N As Long
Dim cell As Range
With Sheet1
N = .Cells(Rows.Count, "A").End(xlUp).Row
For i = 1 To N
Set rsave = .Range("A" & i & ":I" & i)
For Each cell In rsave
If cell = "" Then
Dim missdata
missdata = MsgBox("missing data", vbOKOnly, "Missing Data")
Cancel = True
cell.Select
Exit Sub
End If
Next cell
Next i
End With
End Sub