求助excel 高手,目前可以定时关闭excel,如何再增加代码实现不开启宏就打不开excel?

这是定时关闭的代码,求高手再增加实现不开启宏就打不开excel的代码。

第1例 禁用宏则关闭Excel文件

一、实例说明:
当打开含有宏的文件时,如果“禁用宏”并打开文件后,所有编辑的VBA程序将失效。如何当用户打开Excel文件并禁用宏时,让文件自动关闭呢?本例即是调用Excel4.0版(Excel的一个老版本)的宏命令来解决这个问题。因为“禁用宏”功能无法禁用4.0版本的宏。
设置完成后,当用户打开文件并点击禁用宏按钮后,会弹如图1-24所示提出框,当击“确定”按钮关闭提示框后该文件就会自动关闭。
图1-1 禁用宏后的提示信息
二、设置步骤和使用方法:
1、 打开自已含有宏的文件或者新建一个Excel文件。然后在VBE编辑器中添加一个模块。并写入以下代码:
Function MY()
End Function
添加后的效果如图1-2所示
图1-2 给文件添加一个模块并写入代码
2、在任一个工作表标签上单元格右键,执行【插入】命令打开如图1-26所示【插入】对话框,在常用选项卡中选取“MS Excel4.0宏表”项,然后点击确定按钮后便会在当前工作簿中新建一个默认名Macro1的“宏表”。如图1-27所示。
图1-3 打开【插入】对话框
图1-4 插入的宏表
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("对不起!由于禁用了宏,本文件将自动关闭!",3)
A12单元格:=FILE.CLOSE(FALSE)
A13单元格:=RETURN()
添加后的效果如图所示1-28
图1-5 在宏表中添加公式后的效果
3、 逐个选取工作簿中其他工作表,然后执行【插入】/【名称】/【定义】命令,打开【定义名称】对话框。在“在当前工作簿中的名称”框中输入:工作表名称+Auto_Activate。如图1-29所示在Sheet1工作表中打开【定义名称】对话框,定义的名称就为:Sheet1!Auto_Activate。然后在引用位置文本框中输入:=Macro1!$A$2。

图1-6 在每个工作表中都定义相对应的名称
注:当禁用宏并打开设置名称的工作表后,都会自动关闭文件。有一点值得说明一下,如果对于一个工作表数量较多的工作表逐个设置会很麻烦。所以这时可以只需为其中一个设置名称,但要保障“当打开工作簿时,必需是设置名称的工作表处于选取状态”。为了能达到这个效果,建议关闭文件前把除“定义名称工作表”之外的其他工作表都设置为隐藏。
4、 在每个工作表都定义名称后,保存并关闭文件。整个操作过程序结束。
三、代码要点分析
由于宏表函数的使用和运行比较复杂,所以这里不再详细说明。读者只需按照上述步骤实现“禁用宏则关闭Excel文件”的功能即可。读者可以在已编写宏命令的文件中进行以上操作,也可以先新建一个文件完成以上步骤后,再编写自已的程序代码和进行其他的工作表和单元格等编辑。

这个是我在网上找的你试试 2003可以 2007 不行
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-29
是先有蛋还是先有鸡。顺序搞清楚没有。
如果他没有开启宏。则代码根本不起作用。你写得再好。再多代码也不会得到执行。
所以不能用宏来限定他打开与否。