实例文件已提供,测试验证无误!
完整代码如下:
公共变量保存状态,类型为整数。
若保存状态等于1,则执行后续操作。
Else
务必确保第一列有数据,以便检测必填字段是否填写完整;若无需检测第一列,可调整循环的结束条件。
获取入职资料工作表中A列最后一个非空单元格的行号。
如果入职资料工作表中第 I 行第 4 列单元格为空,则……
保存状态 = 0
选中入职资料工作表中第 I 行第 4 列的单元格。
工作簿保存失败,因有必填项未填写,请补全后再保存!
Exit For
End If
Next
End If
保存状态 = 0
End Sub
新建模块并编写代码。
公共变量保存状态,类型为整数
在工作表事件中输入以下代码:
若保存状态等于1,则执行后续操作。
Else
必须确保第一列有数据,才能判断必填项是否填写完整;若无需检测第一列,可调整循环的结束条件。
获取入职资料工作表中A列最后一个非空单元格的行号。
如果入职资料工作表中第 I 行第 4 列单元格为空,则……
保存状态 = 0
选中入职资料工作表中第 I 行第 4 列的单元格。
工作簿保存失败,因必填项未完成,请补全后重试!
Exit For
End If
Next
End If
保存状态 = 0
End Sub
在Sheet1中,分别为B2和C2单元格定义工作簿级名称。依次选中B2、C2,右键选择命名单元格区域,在弹出框中输入名称,范围设为工作簿,将B2命名为xavier1,C2命名为xavier2,完成后点击确定保存设置。
参照前述工作表必填项设置方法,选中红色区域,依次点击数据→数据有效性→设置→自定义,在公式栏输入:=AND(xavier1<>,xavier2<>),并取消勾选忽略空值选项,确保单元格内容非空。
依次选择:出错警告→样式设为停止→错误信息,然后在错误信息栏输入:请先输入Sheet1中B2和C2单元格内容。
当Sheet1表中B2与C2未完全填写时,在Sheet2红色区域任一单元格输入内容,将弹出提示窗口。

补充说明:工作簿必填项与工作表必填项的主要区别在于单元格的命名和引用层级不同,前者为工作簿级别。当设置多个单元格必填时,公式中使用AND表示所有指定单元格均需填写内容,使用OR则表示只需其中任意一个单元格填写即可。示例中的xavier1、xavier2即代表具体单元格的自定义名称,用于在公式中准确引用对应区域。
1.
在Sheet1中,分别为B2和C2单元格定义工作簿级名称。依次选中B2、C2,右键选择命名单元格区域,在名称栏输入xavier1和xavier2,范围均设为工作簿,完成命名操作。
2.
参照前述工作表必填项设置方法,选中红色区域,依次点击数据-数据有效性-设置-自定义-公式,输入公式,并取消勾选忽略空值选项,确保两个字段均不能为空。
3.
依次点击:出错警告→样式停止→错误信息,在栏中输入:请先输入Sheet1表中B2和C2!
4.
当Sheet1表中B2和C2未完全填写时,在Sheet2表的红色区域内任意单元格输入内容,将弹出提示窗口。