在Excel中,如何实现,不填写Excel单元格就不能保存文件? 要实现这种功能,普通的方法是无法解决的,得使用VBA代码来实现!
方法/步骤
1、如下图,是一张数据表!
2、在上述的表中,如果不填写ABC列的某些单元格,那么,将不能保存Excel文件。同时,会看到如下图的提示对话框!
3、下面,偶来给大家介绍介绍水貔藻疽,如何编写VBA代码! 首先,在excel工作窗口中,按下ALT+F11组合键,打开VBA代码编写窗口,如下图!
4、在上图中,在左边的操作区域,找到ThisWorkbook,点击右键,找到并选择“查看代码”,之后,会打开代码编写的小窗口,如下图!
5、在上图中,首先在顶部的左边,选择Workbook,在其右方选择BeforeSa箪滹埘麽ve事件;注意,这里非常关键,请选择好选项; 然后,粕盘镱嘧编写如上图的代码;最后,在VBA窗口中,对代码进行保存,整个过程完工! 为方便大家的学习,下面,将代码贴至下文: PrivateSubWorkbook_BeforeSave(ByValSaveAsUIAsBoolean,CancelAsBoolean) DimEmpyNumAsInteger EmpyNum=0 Fori=2To13'行数 Forj=1To3'列数 If(Trim(Worksheets(1).Cells(i,j))="")Then'判断有几个单元格没填 EmpyNum=EmpyNum+1 EndIf Next Next IfEmpyNum>=0Then'没填的单元格数大于1,就不能保存 MsgBox"该填的单元格都没填写,不能保存文件" Cancel=True EndIf EndSub 部分代码说明: Worksheets(1)指的是第一个工作表的序号,与表的名称无关,可放心使用,同时可根据需要自己修改。 Cells(i,j)指的是该表的第几行第几列,这里就是必须填写的单元格了,可根据需要修改范围;限制范围的修改,可通过如下的循环步长来实现: Fori=2To13'行数 Forj=1To3'列数