搜索
查看: 1529|回复: 3

关于COM事件注册连接方面的疑问

[复制链接]

15

主题

66

帖子

390

积分

二级会员

Rank: 3Rank: 3

积分
390
发表于 2017-10-7 12:52:44 | 显示全部楼层 |阅读模式
  1. import win.ui;
  2. /*DSG{{*/
  3. var winform = win.form(text="aardio form";right=759;bottom=469;parent=...)
  4. winform.add()
  5. /*}}*/

  6. import console;
  7. import com.excel;
  8. import com;



  9. oExcel = com.excel( false );
  10. var oWorkbook = oExcel.ActiveWorkbook;

  11. AppEvents = {
  12.         SheetSelectionChange = function(Sh, Target){
  13.                 console.log("SheetSelectionChange" )
  14.         }               
  15. };

  16. try{
  17.         com.Connect(oWorkbook,AppEvents );
  18. }
  19. catch(e){
  20.         console.log("建立oExcel连接1失败" + e);
  21. }

  22. try{
  23.              com.ReleaseConnection(oWorkbook);
  24.             
  25.      }
  26.      catch(e){
  27.              console.log("释放oExcel连接失败" + e);
  28.      }     

  29. try{
  30.         com.Connect(oWorkbook,AppEvents );
  31. }
  32. catch(e){
  33.         console.log("建立oExcel连接2失败" + e);
  34. }
  35. winform.show();


  36. import win;
  37. win.loopMessage();
  38. return winform;
复制代码



运行后提示:建立oExcel连接2失败Can't modify a read-only field : '_dispatch',请问com连接是不是只能进行一次?_dispatch'是不是只能赋值一次?如果不是的话,有没有好的解决方案?谢谢!
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2017-10-7 13:14:10 | 显示全部楼层
没有必要像你那样写吧?!
import com.excel;
oExcel = com.excel(
false );
var oWorkbook = oExcel.ActiveWorkbook;

for(i=1;10){
    AppEvents = {
        SheetSelectionChange =
function(Sh, Target){
                console.log(
"SheetSelectionChange" )
        }               
    };
    com.Connect(oWorkbook,AppEvents );
    com.ReleaseConnection(oWorkbook);   
}
你要注册多少次都可以。
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2017-10-7 13:17:46 | 显示全部楼层
另外,你总是写那么多 try catch干什么呢?!
简单几句代码写那么长没必要吧,难道这样看不清楚错误信息?!

err.png
回复

使用道具 举报

15

主题

66

帖子

390

积分

二级会员

Rank: 3Rank: 3

积分
390
 楼主| 发表于 2017-10-7 13:26:49 | 显示全部楼层
哈,是为了更清楚的描述我的问题,让帮助我的人省点心。:)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-12-11 18:52 , Processed in 0.062507 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表