如果前一个单元格显示失败,则 VBA 代码强制保存该单元格

如果前一个单元格显示失败,则 VBA 代码强制保存该单元格

我目前正在创建一份允许主管人员审计其员工的文档。

如果此人未通过上次审核,则我正在寻找一种方法来防止单元格 I 和 J 未完成时进行保存。

下面是我当前文档的照片,可以让您大概了解一下:

在此处输入图片描述

我在 H 列中设置了一个公式,用于输入短语PassFail如果不满足某个点范围:

=IF(G4="","",IF(G4>=85%,"Pass",IF(G4<85%,"Fail"," ")))

我需要规定,如果员工未达到 85% 的积分目标,他们必须填写此后的所有数据。以下代码是我目前拥有的,但我无法使其正常工作。任何更改或新代码都会被接受。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

With Sheets("5s Report Dec 2019")
    If WorksheetFunction(.Range("H:H")).Value = "Pass" Then
        Cancel = False
    Else
        If WorksheetFunction.CountA(.Range("H:H")) <> WorksheetFunction.CountA(.Range("I:I")) / 2 Then
            Cancel = True
            MsgBox "Please enter a values in columns I and J", vbCritical, "Error!"
        End If
    End If
End With

End Sub

相关内容