Excel VBA:使用带有BeforeSave事件的Aftersave事件时出现问题

时间:2016-01-05 12:58:02

标签: excel excel-vba excel-2003 vba

我正在使用VBA脚本进行模板验证。我正在使用BeforeSave Event验证必填字段。 如果必填字段未填充,则该单元格将变为不同的颜色。但我面临的问题是,即使在场地填满后,这种颜色仍然存在。

我的BeforeSave事件是这样的,

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
Dim rngCell As Range
Dim lngLstRow As Long, lngTCols As Long
Dim lngRowCheck(1 To 3) As String
Dim currentCell


lngRowCheck(1) = "A"
lngRowCheck(2) = "B"
lngRowCheck(3) = "C"

lngLstRow = ActiveSheet.UsedRange.Rows.Count

For i = 1 To UBound(lngRowCheck)
    For Each rngCell In Range(lngRowCheck(i) & "2:" & lngRowCheck(i) & lngLstRow)
        If rngCell.Value = 0 Then
            rngCell.Interior.ColorIndex = 37
            MsgBox ("Please enter a name in cell " & rngCell.Address)
            rngCell.Select
            Cancel = True
        End If
    Next
Next i

End Sub

为了使这些彩色字段在填充后变回白色,我使用了AfterSave事件,该事件无法正常工作。

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
Dim lngLstRow As Long, lngTCols As Long

lngLstRow = ActiveSheet.UsedRange.Rows.Count
lngTCols = ActiveSheet.UsedRange.Columns.Count

For i = 2 To lngLstRow

For x = 1 To lngTCols

'MsgBox (Cells(i, x).Address)
   Cells(i, x).Interior.ColorIndex = 0


Next x
Next i
End Sub

请帮我解释一下。

提前致谢。

-Vevek

0 个答案:

没有答案