katamoto 发表于 2014-11-12 22:51:42

请帮忙给程序加一二句话,关于保存excel的语句

;先看我的实例:


(defun c:ttt()
   (vl-load-com)
   ;---------------------------以下选择打开一个已经存在的EXCEL表格----------------------------------
   (cond
      ((setq exlib (findfile "c:\\Program Files\\Microsoft Office\\Office11\\Excel.exe"))exlib)
      ((setq exlib (findfile "c:\\Program Files\\Microsoft Office\\Office12\\Excel.exe"))exlib)
   )
   (if (null mx-acos)
      (vlax-import-type-library
       :tlb-filename                  exlib
       :methods-prefix       "mx-"
       :properties-prefix       "mx-"
       :constants-prefix        "mx-"
      )
   )
   (setq f1 (getfiled "选择xls文件" "D:/test/" "xls;xlsx" 8))
   (setq xlobj (vlax-create-object "excel.application"))
   (setq wbobj (vlax-invoke-method (vlax-get-property xlobj 'WorkBooks) 'Open f1))
   (vla-put-visible xlobj 0)
   (setq sheetobj (MX-get-activesheet xlobj)        cells (mx-get-cells sheetobj))
   ;--------------------------以下对单元格作一个示意性的赋值,将A1单元格赋值-----------------------
   (mx-put-value2 (vlax-variant-value (mx-get-item cells 1 1))        "hello word!")
   ;--------------------------以下关闭并另存工作簿--------------------------------------------------
   (vlax-invoke-method wbobj "saveas" f1 nil nil nil nil nil nil)
   (vlax-invoke-method xlobj "quit")
   (vlax-release-object xlobj)
   (setq xlobj nil)
   (princ)
)

关闭excel的时候格式不太完善,始终提示我保存时候确认修改,我不需要该提示,怎么改写?
还有一个,经常excel是关闭了,但是进程还在,如何关闭?
最后一个,在程序执行时候我按下esc键取消了,怎么默认保存已经修改的excel,用(defun *error* (msg) 吗?


katamoto 发表于 2014-11-13 13:54:53

求大神啊,,,

katamoto 发表于 2014-11-15 18:16:23

大神也没有用过吗,在网上找累死了也没有看见。。。。

katamoto 发表于 2014-11-19 08:27:42

后来自己解决了,加了一句话。
不用saveas

(vlax-invoke-method (vlax-get-property xlobj "ActiveWorkbook") 'Close :vlax-true)
页: [1]
查看完整版本: 请帮忙给程序加一二句话,关于保存excel的语句