乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 139|回复: 4

以下几个自定义函数,可以正常操作OFFICE的软件,不能操作WPS的表格,提示实参数少

[复制链接]

31

主题

140

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
264
发表于 2021-12-13 14:19:00 | 显示全部楼层 |阅读模式
以下几个自定义函数,可以正常操作OFFICE的软件,不能操作WPS的表格,提示实参数少,请大神们指点一下,谢谢
  1. ;;;(setq XLSFile "C:\\Users\\Administrator\\Desktop\\测试.xls")
  2. ;;;(setq UnHide t)
  3. ;;;(xlr_open_xls XLSFile t )
  4. ;;;(xlr_open_xls  表格路径  是否显示)打开表格
  5. (Defun xlr_open_xls( XLSFile UnHide / ExcelApp WorkSheet Sheets ActiveSheet Rtn)
  6.   (if (and (findfile XLSFile) (setq Rtn (vlax-get-or-create-object "Excel.Application")))
  7.     (progn (vlax-invoke-method (vlax-get-property Rtn 'WorkBooks) 'Open XLSFile)
  8.     (if UnHide
  9.       (vla-put-visible Rtn 1)
  10.       (vla-put-visible Rtn 0)
  11.     )
  12.     )
  13.   )
  14.   Rtn
  15. )
  16. ;;;(setq XLSFile "C:\\Users\\Administrator\\Desktop\\测试2313.xls")
  17. ;;;(xlr_excel_kill xlapp  nil)
  18. ;;;(xlr_excel_saveas  xlapp XLSFile)
  19. ;;;(xlr_excel_kill xlapp "C:\\Users\\Administrator\\Desktop\\测试2313.xls")
  20. ;;;________________________________________________________________________
  21. (Defun xlr_excel_kill (ExlObj SaveYN);;;excel退出与保存
  22.    (if SaveYN
  23.     (progn
  24.       (vlax-invoke-method (vlax-get-property ExlObj "ActiveWorkbook") 'SAVE)
  25.       (vlax-invoke-method (vlax-get-property ExlObj "ActiveWorkbook") 'Close :vlax-False)
  26.       )
  27.     (vlax-invoke-method (vlax-get-property ExlObj "ActiveWorkbook") 'Close :vlax-False)
  28.   )
  29.   (vlax-invoke-method ExlObj 'QUIT)
  30.   (vlax-release-object ExlObj)
  31.   (setq ExlObj nil)
  32.   (gc)
  33. )
  34. ;;;另存文件
  35. (Defun xlr_excel_saveas (xlapp Filename / Rtn)
  36.   (if (findfile Filename)
  37.     (vl-file-delete (findfile Filename))
  38.   )
  39.   (vlax-invoke-method
  40.     (vlax-get-property Xlapp "ActiveWorkbook")
  41.     "SaveAs"
  42.     Filename
  43.     msxl-xlNormal
  44.     ""
  45.     ""
  46.     :vlax-False
  47.     :vlax-False
  48.     nil
  49.   )
  50.   (findfile Filename)
  51. )

回复

使用道具 举报

12

主题

90

帖子

14

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
139
发表于 2021-12-14 10:49:00 | 显示全部楼层
(if (and (findfile XLSFile) (setq Rtn (vlax-get-or-create-object "Excel.Application")))
→→→→→
(if (and (findfile XLSFile) (setq Rtn (vlax-create-object "Excel.Application")))
回复

使用道具 举报

31

主题

140

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
264
发表于 2021-12-14 13:06:00 | 显示全部楼层

谢谢
回复

使用道具 举报

Bdj

1

主题

12

帖子

5

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-20 13:00:00 | 显示全部楼层

所以解决了吗?把函数:vlax-get-or-create-object改成vlax-create-object。也不行啊
回复

使用道具 举报

8

主题

44

帖子

13

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
68
发表于 2022-7-20 13:17:00 | 显示全部楼层
vlax-invoke-method 改为  vlax-invoke
(setq Rtn (vlax-get-or-create-object "Excel.Application"))改为
(setq rtn (cond ((vlax-get-or-create-object "ket.application"))
                      ((vlax-get-or-create-object "execl.application"))
                )
      )
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-1-31 12:48 , Processed in 0.245988 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表