小弟用C++打开EXCEL后,写了关闭的代码,可是没效果,不知道问题出在哪,哪位大侠帮着指点一二,小弟不胜感激!下面是小弟写的代码:  
           hzBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true); 
  hzBook.AttachDispatch(hzBooks.Open("111.xls",vtMissing,vtMissing,
  vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,
  vtMissing,vtMissing,vtMissing,vtMissing));
  ExcelApp.SetVisible(true);  

hzBook.ReleaseDispatch();
hzBooks.ReleaseDispatch();
ExcelApp.ReleaseDispatch();
hzBook.Close (vtMissing,_variant_t("111.xls"),vtMissing);
hzBooks.Close(); 
ExcelApp.Quit();

解决方案 »

  1.   

    hzBooks.ReleaseDispatch(); 
    ...
    hzBooks.Close();不对吧,应该是先close再ReleaseDispatch啊。
      

  2.   

    改成这样
    hzBook.Close (vtMissing,_variant_t("111.xls"),vtMissing); 
    hzBooks.Close(); 
    ExcelApp.Quit();
    hzBook.ReleaseDispatch(); 
    hzBooks.ReleaseDispatch(); 
    ExcelApp.ReleaseDispatch();
      

  3.   

      hzBook.SetSaved(TRUE);  
      hzBook.ReleaseDispatch();    
      hzBooks.ReleaseDispatch();    
      ExcelApp.Quit();  
      ExcelApp.ReleaseDispatch();    
      

  4.   

    hzBook.Close (vtMissing,_variant_t("111.xls"),vtMissing); 
    hzBooks.Close(); 
     不关闭应该也可以,只要设置了已经保存标志就可以了,在ExcelApp.Quit();  的时候会自动关闭而且就不会提示没保存了.个人意见
      

  5.   

    http://topic.csdn.net/u/20100124/16/33e6a67d-4511-4027-8db8-6d0f3658284b.html
      

  6.   

    年底要结算了嘛前两天还用VBS给别人公司写了个操作Excel的脚本。。
      

  7.   

    在关闭前调用 
    hzBook.Save();
    hzBook.SetSaved(TRUE); 或者调用另存为
    hzBook.SaveAs(COleVariant(strXlsPath),covOptional,covOptional,
     covOptional,covOptional,covOptional,0,covOptional,
     covOptional,covOptional,covOptional,covOptional);
      

  8.   

    楼上的这位兄弟说的很清楚,就是你没有写保存的代码.另外还有一种另存的方法是8楼的兄弟那里学到的  //另存文件名   
       
      TCHAR   filepath[256];   
      strcpy(filepath,strNewFileName);   
      VARIANT   fn   =   _variant_t(filepath);   
      wbMyBook.SaveCopyAs(fn);   
      wbMyBook.SetSaved(TRUE); 
      

  9.   

    为何我调了SetSaved(TRUE)后还是提示是否要保存的对话框?
      

  10.   

    为何我调了SetSaved(TRUE)后还是提示是否要保存的对话框?