mpf5566 发表于 2013-10-18 11:44:13

关于AU3调用excel进程已经.visible=false打开其他新excel还会显示

Global $oexcel = ObjCreate("excel.application")
$oexcel.visible = False脚本已经申明excel进程是visible=false,后续打开excel进程可以隐藏,但是当用户操作打开其他excel时该visible=false的进程就会显出来了。。。。是不是还少什么申明代码!!{:face (394):}

xms77 发表于 2013-10-18 12:52:48

只对$oExcel对象打开的Excel文件有效,对其他方式打开的Excel文件无效

mpf5566 发表于 2013-10-18 13:02:23

回复 2# xms77
xms你好,我试过在每一个$wb=$oexcel.workbooks.open($path&$wbname)
$wb.visible=false。
但还是在打开新的excel对象时会显示出来!!

kevinch 发表于 2013-10-18 20:25:55

excel默认用同一进程打开文件,所以虽然visible=false,但是当其他文件打开里也会跟着显示出来,不过03版选项里有一个设置项可以使excel用不同进程打开文件,这样就不会了,不过不同进程的坏处是各个进程之间不能通信,也就是说你不能调用另一个excel进程里的资源,比如工作簿引用之类的,但是作为你这个程序运行时的临时解决方案还是可行的,你可以尝试在03版下找到那个选项,然后录制宏来记录勾选时改变的代码,然后调用,程序结束时恢复

xms77 发表于 2013-10-19 21:45:53

回复 3# mpf5566
不同进程的话,是互不相关的。

mpf5566 发表于 2013-10-21 15:03:26

回复 4# kevinch


    嗯,感谢kevinch 的答复,那所谓临时解决方案提醒使用的用户运行前检测EXCEL进程并结束掉而且使用期间不要打开EXCEL了。

kevinch 发表于 2013-10-21 16:45:03

网上可以找到在不同进程中打开不同excel文档的方法,参考一下,修改的时候监控系统变化,应该是修改的注册表项,如果证实可以的话,那么可以直接用程序修改对应的注册表项,程序运行完成后恢复原来的注册表项

mpf5566 发表于 2013-10-21 18:37:09

回复 7# kevinch


    好的。。。多谢kevinch,我再好好研究一下!
页: [1]
查看完整版本: 关于AU3调用excel进程已经.visible=false打开其他新excel还会显示