本人菜鸟一只,编一vb从excel中读取某些数据(不写入),定义如下:
开始:
Public G_workBook As Workbook   
Public G_worksheet As Worksheet
Public G_excel As Excel.Application关闭的时候把能关的都关了
G_workBook.Close
    G_excel.Application.Quit
    G_excel.Quit '关闭它,并释放对象
    Set G_worksheet = Nothing
    Set G_workBook = Nothing
    Set G_excel = Nothing结果这么按F5执行没有问题
要是建立一个断点调试,调试中按结束键结束的话,进程中就会出现excel.exe需要手工停止进程,用什么办法改进呢?另本人最近研究vb读取excel方面的东东,有些收获但是困惑更多,愿意与同道中人切磋,也请这方面的高手指教,本人不吝分数求指点,请愿意的兄弟说一声或留个联系方式。

解决方案 »

  1.   

    关闭时顺序要正确:G_worksheet.close
    Set G_worksheet = Nothing
    G_workBook.Close
    Set G_workBook = Nothing
    G_excel.Quit 
    Set G_excel = Nothing
      

  2.   

    另外大哥我刚才试了试,发现我得G_worksheet竟然不支持close方法,这是怎么回事啊?
      

  3.   

    Set xlSheet = Nothing
        xlBook.Close
        Set xlBook = Nothing
        xlApp.Quit
        Set xlApp = Nothing绝对没问题(我用的)。
      

  4.   

    小健大哥,谢谢,我就是用的你这个,如果正确执行的话没有问题,但是我得意思是在设置断点调试过程中,直接按中止键停止以后这个进程还是存在于任务管理器里的,这个是不是没有办法了呢?还有就是我只是读取excel中的数据,并没有写入,但是每一次执行结尾都问我表已经改变,是否要保存,这是怎么回事呢?你遇到国么?明白了一会就给分,谢谢!
      

  5.   

    设置断点之后执行还是会清除掉的,何况你又何必在乎在调试里的东西呢,程序运行时没问题就行了。
         
    不弹出保存框,加上这句:
    xlApp.DisplayAlerts = False
      

  6.   

    worksheet不支持close 方法
    你的销毁excel进程方法没错
    G_excel.Quit '关闭它,并释放对象
        Set G_worksheet = Nothing
        Set G_workBook = Nothing
        Set G_excel = Nothing
    这样就可以了
    ----------------
    设置断点  程序非正常执行退出,哪个肯定没办法得手工关闭
    -------------------------
    每一次执行结尾都问我表已经改变,是否要保存
    看你怎么打开的excel文件
    如果是新建的,可以先删除再保存
    如果是直接打开的用G_excel.displayAlerts=false