以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  屏蔽Excel宏运行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=193259)

--  作者:creastzh
--  发布时间:2024/8/30 5:53:00
--  屏蔽Excel宏运行
老师,您好,今天遇到一个问题:
我需要把大量的Excel文件数据导入到Foxtable中, 这些文件都是固定格式的, 以前是宏程序收集数据,因此每个Excel的ThisWorkbook 存在open, BeforeClose事件,这样的话可以在每次打开或关闭该Excel文件时自动将Excel数据与总表进行数据交换, 但现在转Excel数据到Foxtable中时却遇到了麻烦:
在每次打开此类Excel文件时,该宏程序Open/BeforeClose都要运行一下,关键还要打开与之交换数据的其它文件,中间还有对话窗口(下图)需要手工关闭, 根本无法实现自动化数据处理, 因此我想问,是否有类似Excel中的application.enableevents=false的指令,能在我用Foxtable打开该Excel文件时能关闭Open事件

图片点击可在新窗口打开查看
[此贴子已经被作者于2024/8/30 6:21:34编辑过]

--  作者:creastzh
--  发布时间:2024/8/30 6:02:00
--  
本来想通过Excel禁用宏设置的, 但这带来的问题是平时又有大量需要使用宏程序的任务, 这样频繁设置又显太麻烦了, 所以我想最好是能有一个指令关闭Excel的宏程序,不知是否可以实现

我从网上查找到:
  1. ?使用Shift键?:在打开工作簿时按住Shift键,可以阻止Workbook_Open事件或Auto_Open宏中的代码执行。这种方法适用于Excel 2003及更高版本,特别是当宏安全性设置为“低”时有效?。

  2. 这个操作测试是有效的, 但不知道如何在Foxtable中是否有办法实现 模拟的按住Shift不放直到该文件被成功打开再释放的操作.

Foxtable中有 SendKeys 指令,但测试通不过,好像不能实现按住不放的效果


[此贴子已经被作者于2024/8/30 6:22:56编辑过]

--  作者:creastzh
--  发布时间:2024/8/30 6:47:00
--  
我终于试出来了, 在执行
 Dim Wb As MSExcel.Workbook = App.WorkBooks.Open(fpf....
指令前,加指令 App.EnableEvents = False 即可, 给大家太麻烦了