在Excel中,如何实现,不填写Excel单元格就不能保存文件?
要实现这种功能,普通的方法是无法解决的,得使用VBA代码来实现!
如下图,是一张数据表!
在上述的表中,如果不填写ABC列的某些单元格,那么,将不能保存Excel文件。同时,会看到如下图的提示对话框!
下面,偶来给大家介绍介绍,如何编写VBA代码!
首先,在excel工作窗口中,按下 ALT+F11 组合键,打开VBA代码编写窗口,如下图!
在上图中,在左边的操作区域,找到ThisWorkbook,点击右键,找到并选择“查看代码”,之后,会打开代码编写的小窗口,如下图!
在上图中,首先在顶部的左边,选择 Workbook,在其右方选择 BeforeSave 事件;注意,这里非常关键,请选择好选项;
然后,编写如上图的代码;最后,在VBA窗口中,对代码进行保存,整个过程完工!
为方便大家的学习,下面,将代码贴至下文:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim EmpyNum As Integer
EmpyNum = 0
For i = 2 To 13 '行数
For j = 1 To 3 '列数
If (Trim(Worksheets(1).Cells(i, j)) = "") Then '判断有几个单元格没填
EmpyNum = EmpyNum + 1
End If
Next
Next
If EmpyNum >= 0 Then '没填的单元格数大于1,就不能保存
MsgBox "该填的单元格都没填写,不能保存文件"
Cancel = True
End If
End Sub
部分代码说明:
Worksheets(1)指的是第一个工作表的序号,与表的名称无关,可放心使用,同时可根据需要自己修改。
Cells(i, j)指的是该表的第几行第几列,这里就是必须填写的单元格了,可根据需要修改范围;限制范围的修改,可通过如下的循环步长来实现:
For i = 2 To 13 '行数
For j = 1 To 3 '列数
好,到此,本文结束,如果您存在问题,请联系本站站长!