如何在Excel 2010中创build一个特定的单元格

大家好,我将为用户提供一个Excel Document ,如下所示

在这里输入图像说明

现在,如果用户离开一个需要的单元格,我想提示他一个消息,说这是一个在Excel中的必需值。

我提到了一些文章

但我无法达到我所要求的,所以任何人都可以帮助。 另外我想知道是否可以在Excel应用Regular expression validators 。 像Date format应该是mm/dd/yyyySSN应该是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 

第1部分

该代码有几个问题

  1. 您需要一个Workbook事件 – 没有WorkSheet_BeforeSave事件
  2. 你不能用Sheet1.Range("A3:B3").Value = ""testing两个空白单元格, Sheet1.Range("A3:B3").Value = ""
  3. 如果代码正在运行,则事件已经启用,所以这行Application.EnableEvents = True是多余的

像这样的A3和B3testing在最左边的纸张上是非空白的

{代码进入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 

虽然你可以使用正则expression式的第2部分,普通的数据validation应该工作正常,即

a)您可以在数据validation中使用“允许”date

b)您可以使用一个介于100,000,000和999,999,999之间的9位数的整数

回答第2部分(正则expression式的东西)

您可以在VBA中编写用户定义的函数并在Excel中使用它。 下面是一个使用RegEx提取string部分的例子 ,但是稍微调整一下就可以使用它来进行validation。