背景的前三个要素:
到目前为止,这些模板在开发环境中运行良好--“个性化”代码位于“WorkBook_Open(”(ThisWorkbook)例程中--它运行、删除自身并保存为个性化模板。这两个模板在Sheet1代码中都有“process宏”(这里的原理是初始模板在'ThisWorkbook‘和’Sheet1 1‘中有宏;个性化模板中只有'Sheet1’中的宏,而从个性化模板创建的工作簿中根本没有宏。
在'beta测试‘中,我遇到了XP (文件格式)下的Excel2000问题,在目标机器上,我的WorkBook_Open例程被删除在主模板中(而不是在个性化模板中)--尽管在Excel2007/Vista上一切正常。
当时我觉得Workbook_Open的无效删除可能是一个编码错误-but,而我在研究问题时发现了许多关于“Macafee删除VBA模块”的引用。我没有研究这些,但我意识到目标机器(和环境)运行Macafee,而我的所有计算机都运行Norton。
在重新编码之后,我成功地重新测试了以下内容:
( a) Excel 2007/Vista/Norton
( b) Excel 2007/XP Professional/Norton
( c) Excel 2000/XP Home/Norton
所以在Excel 2003/XP Professional/Macafee中重新测试感觉很舒服。
这一次,我一直在关注它--因此,再次看到WorkBook_Open例程被错误地从主模板中删除--不幸的是,这仅仅是在USB内存键(模板运行的地方)被完全销毁之前的几分钟。
因此,在我再次讨论整个过程之前,我要问一个问题:
如果是的话,有什么办法吗?(这个模板将在一个一万人的企业中被三个人使用),所以我不可能影响/修改安全策略!()如果Macafee出了问题,我将不得不重新考虑整个事情!!
发布于 2011-06-16 09:38:29
我已经设法再次到达客户端机器-并添加了一个新的简单模板,以证明或否则我的问题。新的WorkBook_Open程序是..。
Private Sub WorkBook_Open()
MsgBox "Hello World"
With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.DeleteLines 1, _
.CountOfLines
End With
MsgBox "Goodbye to all that!"
End Sub...and,它完全按照需要工作,即例程执行,然后删除自己(第二个msgbox显示,即使代码已被删除!)
因此,这个测试使我的问题无效--作为AV保护的一部分,McAfee没有删除例程--所以我不再寻找解决办法!
现在我要做的就是弄清楚我的问题到底是什么!
谢谢你的评论
发布于 2011-06-16 02:59:25
回答你的问题..。是的,许多防病毒程序绝对认为在打开Excel或Word文档上运行的自动运行代码是不安全的,并删除它,因为十年前的一段时间里,这实际上是一些蠕虫的工作方式。我不知道MacAfee是否特别这样做,但我确实听说过这种情况。
发布于 2011-07-11 19:25:00
如果有其他人来到这个线程--我现在已经完全检出了我的模板--并在目标环境中重新运行它,JUst就会再次删除Workbook_Open例程。在对目标机器做了一些调查之后,我发现了Macafee事件日志和log .
事件类型:警告
资料来源: McLogEvent
事件类别:无
活动ID: 258
日期: 09/07/2011
时间: 15:45:40
用户: NT权限\系统
电脑:xxxxxxxxxx
描述:文件F:\时间表\时间表Generator.xlt\1. file 包含X97M/Generic 。使用扫描引擎版本5400.1158 DAT版本6400.0000成功地清除了该文件。
所以有确凿的证据。Workbook_Activate()也会发生同样的情况。
“冒犯”字句似乎是
With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.DeleteLines 1, _
.CountOfLineshttps://stackoverflow.com/questions/6321521
复制相似问题