在Excel中覆盖VBA宏足够长的时间来保存非常相同的宏

时间:2018-06-18 19:57:37

标签: excel vba excel-vba

我有一个预填充模板,其中包含“.NC”,需要在“.NC”之前添加数字才能保存(例如12345678.NC)。也许我正在以错误的方式解决这个问题,但是..如果只有“> NC”在框中,我试图提醒它,问题是“.NC”预先填写在模板表中并且需要在那里,然后标记我的宏,不允许我保存宏停止保存!我的代码工作正常,我无法保存代码。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Application.Sheets("Sheet1").Range("L3").Value = ".NC" Then
Cancel = True
         MsgBox ("Please enter program number")
    End If
End Sub

有没有办法覆盖那个宏足够长的时间来保存它?也许我只是这样做错了..

1 个答案:

答案 0 :(得分:0)

这是我的解决方案。当用户点击保存按钮时,运行并提示他们填写该单元格,如果该单元格没有" .NC"或者长度不到3个字符。

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

    With Range("L3")
        If Len(.Value2) <= 3 Or Right$(.Value2, 3) <> ".NC" Then
            'MsgBox ("Please enter program number")
            .Value2 = InputBox("Please enter program number") & ".NC"
        End If
    End With

End Sub