大家好我将为用户提供Excel Document
,其中包含以下基本信息
现在,如果用户离开了需要的单元格,我想提示他一条消息,说明它是excel中的必需值。
我已提到some articles
但是我无法实现我所需要的,所以任何人都可以提供帮助。另外,我想知道是否可以在Regular expression validators
中应用Excel
。 Date format
之类的内容应该是mm/dd/yyyy
而SSN
应该是9 digited
之类的内容。
我尝试了一些类似的事情,但这没有提示我任何error or Dialog
Private Sub Worksheet_BeforeSave(Cancel As Boolean)
If Sheet1.Range("A3:B3").Value = "" Then
Application.EnableEvents = True
MsgBox "Cannot print until required cells have been completed!"
Cancel = True
End If
End Sub
答案 0 :(得分:3)
第1部分
该代码有一些问题
Workbook
个事件 - 没有WorkSheet_BeforeSave事件Sheet1.Range("A3:B3").Value = ""
Application.EnableEvents = True
是多余的对于这个测试,A3和B3在最左边的纸张上都是非空白
{代码进入ThisWorkbook
模块}
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Application.WorksheetFunction.CountA(Sheets(1).Range("a3:b3")) <> 2 Then
MsgBox "Cannot print until required cells have been completed!"
Cancel = True
End If
End Sub
虽然您可以将Regex用于第2部分,但普通数据验证应该可以正常工作,即
a)您可以在数据验证中使用“允许”日期
b)对于9位数字,您可以使用100,000,000到999,999,999之间的整数
答案 1 :(得分:1)
回答第2部分(正则表达事物)
您可以在VBA中编写用户定义的函数并在Excel中使用它。 Here's an example使用RegEx提取字符串的一部分,但经过一些调整后,您可以使用它来进行验证。