如果条件不满足,请勿保存工作表
Posted
技术标签:
【中文标题】如果条件不满足,请勿保存工作表【英文标题】:Don't save sheet if condition not met 【发布时间】:2018-12-23 16:15:36 【问题描述】:我有一个工作簿,里面有两张名为“每日目标”和“员工目标”的工作表。
如果在“每日目标”工作表上工作,我需要允许保存工作簿的代码,无论任何条件。
如果在“员工目标”表上工作,如果条件满足则允许保存,否则不要保存。
Option Explicit
'I wrote that code within "Staff Target" sheet.
Sub NotSave()
Dim WB As Workbook
Set WB = Workbooks("Target Sales Tmplate")
Dim ST As Worksheet
Set ST = Worksheets("Staff Targets")
With ST
If ST.Range("C" & Rows.Count).End(xlUp) <> Range("B4") Then
WB.Close SaveChanges:=False
MsgBox "Total Staff Target Amount is not equal to Total Monthly Target!", vbCritical, "ERROR"
End If
End With
End Sub
【问题讨论】:
【参考方案1】:将此代码放入ThisWorkbook
模块:
Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim staffTargets As Worksheet
Set staffTargets = Worksheets("Staff Targets")
With staffTargets
If ActiveSheet.Name = .name Then
If .Range("C" & .Rows.Count).End(xlUp) <> .Range("B4") Then
MsgBox "Workbook Not Saved. Total Staff Target Amount is not equal to Total Monthly Target!", vbCritical, "ERROR"
Cancel = True
End If
End If
End With
End Sub
【讨论】:
@Acott Holtzman 感谢您的回答。但是我的第一个代码与您的版本完全相同。但是这段代码并不完全允许保存我的工作簿。但是当我在工作表 1 并且不关心状况时,我想保存工作簿。我想在处理员工目标表而不是每日目标表时检查条件。 @Khazar - 对不起。我忘记了那个条件。立即尝试。 @Acott Holtzman 现在代码可以正常工作了。非常感谢您的支持。以上是关于如果条件不满足,请勿保存工作表的主要内容,如果未能解决你的问题,请参考以下文章
SQL 语句 join where 如果一个条件不满足,则执行另一个条件