2015-02-01 7 views
0

im пытается создать макрос, который проверяет, заполнил ли пользователь свою строку. Например, если пользователь начинает вводить в ячейку A1, макрос проверяет, заполнены ли ячейки в одной строке, если the the the the the the the the can not the user user can not close excel перед заполнением всех пробелов.Проверка данных макрос excel VBA

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 
+0

Это, кажется, что вы хотите ..... В чем проблема ?? –

ответ

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 
+0

Спасибо человеку, точки перед ячейками (Rows.Count, «A») и .Range («A» & i & «: I» & i) нужно удалить, а затем отлично работает! –

Смежные вопросы