В моем листе Excel я проверяю, что определенный столбец не должен быть пустым и его значения должны быть уникальными. Эта проверка должна выполняться только на "Sheet1", но она работает и для других листов. Мой код:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _ Cancel As Boolean)
Dim rngCell As Range
Dim lngLstRow As Long
lngLstRow = ActiveSheet.UsedRange.Rows.Count
For Each rngCell In Range("A1:A" & lngLstRow)
If rngCell.Value = 0 Then MsgBox ("Please enter a name in cell " & rngCell.Address) rngCell.Select
End If
Next
End Sub
Вторая проверка уникальности значений выполняется с помощью функции проверки данных в Excel.
решение1
Вам следует указать лист, на котором должен действовать код, а не использовать ActiveSheet.
Итак, в случае, если вы хотите проверить Лист1, вы должны изменить его следующим образом:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim rngCell As Range
Dim lngLstRow As Long
lngLstRow = Sheet1.UsedRange.Rows.Count
For Each rngCell In Sheet1.Range("A1:A" & lngLstRow)
If rngCell.Value = 0 Then
MsgBox "Please enter a name in cell " & rngCell.Address
Sheet1.Activate
rngCell.Select
End If
Next
End Sub