Как включить макросы только для одного листа в Excel

Как включить макросы только для одного листа в Excel

В моем листе 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

Связанный контент