在工作簿保存时,将字段强制为特定工作表

我在Excel中使用macros来使excel工作簿中的字段强制。 但是,问题是该工作簿包含多个工作表,并且该macros适用于所有工作表。

有没有办法在工作簿中定位特定的工作表?

以下是我正在使用的代码:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If Cells(5, 2).Value = "" Then MsgBox "Please fill cell B5" Cancel = True End If End Sub 

请尝试:

 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) For i = 1 To ThisWorkbook.Sheets.Count If ThisWorkbook.Sheets(i).Name = "Name of specific sheet" Then If ThisWorkbook.Sheets(i).Cells(5, 2).Value = "" Then MsgBox "Please fill cell B5" Cancel = True End If End If Next i End Sub 

如果“特定工作表的名称是您validationCells(5, 2).Value = "" for的工作表名称。

 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim shX As Worksheet Dim rX As Range Set shX = ThisWorkbook.Worksheets("Sheet1") Set rX = shX.Cells(5, 2) If rX = "" Then MsgBox "Please fill cell B5" Cancel = True shX.Select rX.Select End If End Sub 

更直接

 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim ws As Worksheet Set ws = Sheets("Your sheet name here") If Len(ws.[b5]) = 0 Then MsgBox "Please fill cell B5 on sheet " & ws.Name, vbCritical, "File not saved" Cancel = True Application.Goto ws.[b5] End If End Sub