一、 实例说明:
当打开含有宏的文件时,如果“禁用宏”并打开文件后,所有编辑的VBA程序将失效。如何当用户打开Excel文件并禁用宏时,让文件自动关闭呢?本例即是调用Excel4.0版(Excel的一个老版本)的宏命令来解决这个问题。因为“禁用宏”功能无法禁用4.0版本的宏。
设置完成后,当用户打开文件并点击禁用宏按钮后,会弹如图1-24所示提出框,当击“确定”按钮关闭提示框后该文件就会自动关闭。
图1-1 禁用宏后的提示信息
禁用宏则关闭Excel文件
二、 设置步骤和使用方法:
1、 打开自已含有宏的文件或者新建一个Excel文件。然后在VBE编辑器中添加一个模块。并写入以下代码:
Function MY() End Function
添加后的效果如图1-2所示
图1-2 给文件添加一个模块并写入代码
2、在任一个工作表标签上单元格右键,执行【插入】命令打开如图1-26所示【插入】对话框,在常用选项卡中选取“MS Excel4.0宏表”项,然后点击确定按钮后便会在当前工作簿中新建一个默
2
禁用宏则关闭Excel文件
的“宏表”。如图1-27所示。
图1-3 打开【插入】对话框
图1-4 插入的宏表
3
认名Macro1
禁用宏则关闭Excel文件
2、 在宏表的以下单元格中输入公式:
A2单元格: =ERROR(FALSE) A3单元格: =RUN(\"MY\") A4单元格: =IF(ISERROR($A$3)) A5单元格: =GOTO($A$11) A6单元格: =END.IF() A7单元格: =ERROR(TRUE) A8单元格: =RETURN()
A11单元格:=ALERT(\"对不起!由于禁用了宏,本文件将自动关闭!\A12单元格:=FILE.CLOSE(FALSE) A13单元格:=RETURN() 添加后的效果如图所示1-28
4
禁用宏则关闭Excel文件
图1-5 在宏表中添加公式后的效果
3、 逐个选取工作簿中其他工作表,然后执行【插入】/【名称】/【定义】命令,打开【定义名称】对话框。在“在当前工作簿中的名称”框中输入:工作表名称+Auto_Activate。如图1-29所示在Sheet1工作表中打开【定义名称】对话框,定义的名称就为:Sheet1Auto_Activate。然后在引用位置文本框中输入:=Macro1!$A$2。
5
禁用宏则关闭Excel文件
图1-6 在每个工作表中都定义相对应的名称
注:当禁用宏并打开设置名称的工作表后,都会自动关闭文件。有一点值得说明一下,如果对于一个工作表数量较多的工作表逐个设置会很麻烦。所以这时可以只需为其中一个设置名称,但要保障“当打开工作簿时,必需是设置名称的工作表处于选取状态”。为了能达到这个效果,建议关闭文件前把除“定义名称工作表”之外的其他工作表都设置为隐藏。
4、 在每个工作表都定义名称后,保存并关闭文件。整个操作过程序结束。
三、 代码要点分析
由于宏表函数的使用和运行比较复杂,所以这里不再详细说明。读者只需按照上述步骤实现“禁用宏则关闭Excel文件”的功能即可。读者可以在已编写宏命令的文件中进行以上操作,也可以先新
6
禁用宏则关闭Excel文件
建一个文件完成以上步骤后,再编写自已的程序代码和进行其他的工作表和单元格等编辑。
7
因篇幅问题不能全部显示,请点此查看更多更全内容