我有一个程序是导出数据到EXCEL中,
现在又写了一个程序可以自动打开那个报表,
然后自动点击按钮进行报表导出。然而问题来了,用这个外挂程序进行EXCEL导出的时候就
出现“无法创建ACTIVEX 组件..”,单独用之前的报表自己手动
点击的时候就不会有问题。
第一次出现这样的问题,比较怪异,请高人们指点!!!情况紧急!

解决方案 »

  1.   

    你打开任务管理器。导出EXCEL。结束后看下进程有没有结束。
      

  2.   

    那你这个外挂程序能导出其他excel报表么?
      

  3.   

    工程是不是引用的Excel,对于Excel和ADO最好都用CreateObject的形式创建实例。
      

  4.   

    外挂程序自动点击按钮,其他程序也是一样,都是在创建EXCEL的时候出问题
    这个外挂程序里一共自动调用了两个报表,情况一样。
      

  5.   

    EXCEL没有结束掉,在那个报表程序关闭后才结束,这个说明什么问题呢?
      

  6.   

    没碰到过。不过,我想与excel的数据交换应该不是大问题,可能还是思路上有不对的地方。
      

  7.   

    我刚刚发现,
    SENDMESSAGE之后,
    外挂程序就在等待导出EXCEL的报表运行结束后才进入下面内容,
    我想问题应该就是在这里出现了一些冲突。但是也没什么道理好像。
    因为生成EXCEL的事情是在另外的报表中执行的,
    EXCEL生成完后才会结束的。郁闷,继续找原因
      

  8.   

    即使不同进程的 Excel,也不能同时打开同一个文件。
    所以必须修改报表程序在导出后就关闭 Excel。
      

  9.   


      不是这种情况。
    我现在的程序情况是这样的:
    有一个报表程序时导出EXCEL的,
    现在又开发了一个外挂程序,作用是自动打开这个报表程序(Shell),
    然后自动点击执行按钮(Sendmessage),最后想他自动发邮件发出这个报表。  那个报表程序我已经让他自己保存好EXCEL并关闭EXCEL。只是关闭程序以及进程是放在
    外挂程序的最后结束部分。
     
      现在出的问题就是在外挂程序调用到报表程序执行时,在最后生成EXCEL的时候就出现
    “无法创建ActiveX组件。。”的提示。
      

  10.   

    工程属性的启动对象设为 Sub Main
    Sub Main()
        if Command$() = "auto" then '接受参数 auto,进行无界面自动处理'
            ExportReport
            SendEamil
        else '否则显示窗体进行人工操作'
            Form1.Show
        end if
    end sub
      

  11.   

    依旧是通过 Shell 调用的。
      

  12.   

    我找到问题答案了。
    原因就是我用的SENDMESSAGE与EXCEL有可能冲突了,
    改用POSTMESSAGE就OK了。结贴了