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를 사용하는 대신 코드가 작동할 시트를 지정해야 합니다.

따라서 Sheet1을 확인하려는 경우 다음과 같이 변경합니다.

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

관련 정보