找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4172|回复: 2

[求助] Excel新建工作表

[复制链接]
发表于 2022-11-2 11:42:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
新创建一个工作薄

  1. (setq excel (vlax-get-or-create-object "excel.application"))
  2. (Vlax-Invoke-Method (Vlax-Get excel 'Workbooks) 'Add 1)
  3. (setq sheet (vlax-get excel 'sheets))
使用vlax-dump-object查询 sheet
  1. (vlax-dump-object sheets t)
  2. ; Sheets: nil
  3. ;特性值:
  4. ;   Application (RO) = #<VLA-OBJECT _Application 0000028f5debbc68>
  5. ;   Count (RO) = 1
  6. ;   Creator (RO) = 1480803660
  7. ;   HPageBreaks (RO) = #<VLA-OBJECT HPageBreaks 0000028f5debc6e8>
  8. ;   Item (RO) = ...不显示带索引的内容...
  9. ;   Parent (RO) = #<VLA-OBJECT _Workbook 0000028f62b37b18>
  10. ;   Visible = 发生意外。
  11. ;   VPageBreaks (RO) = #<VLA-OBJECT VPageBreaks 0000028f5debba38>
  12. ;   _Default (RO) = ...不显示带索引的内容...
  13. ;   _NewEnum (RO) = #<IUnknown 0000028f625252e0>
  14. ;支持的方法:
  15. ;   Add (4)
  16. ;   Add2 (4)
  17. ;   Copy (2)
  18. ;   Delete ()
  19. ;   FillAcrossSheets (2)
  20. ;   Move (2)
  21. ;   PrintOut (9)
  22. ;   PrintPreview (1)
  23. ;   Select (1)
  24. T
复制代码
可以知道方法中有Add
通过Excel宏录制,新建工作表的VBA语句如下
  1. Sheets.Add(undefined, "Sheet1", 1, undefined);
复制代码
转化成Vlisp语句如下:
  1. (vlax-invoke-method sheet 'add 0 "Sheet1" 1 0)
复制代码
出错信息如下 :
; 错误: Automation 错误。未提供说明。
请教,如何正确在一个工作薄中新建工作表,谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2022-11-3 12:10:10 | 显示全部楼层
;0·新增页
;|
Examples:
(vlxls-sheet-add *xlapp* "Sheet1")  ==>  T
(vlxls-sheet-add *xlapp* NIL)  ==>  T
(vlxls-sheet-add *xlapp* "NewSheet")  ==>  NIL
|;
(defun vlxls-sheet-add (xlapp Name / Rtn)
   (if (member name (vlxls-sheet-get-all xlapp))
      (setq Rtn nil)
      (progn
         (vlax-put-property
            (vlax-invoke-method
               (vlax-get-property Xlapp "sheets" )
               "Add"
            )
            "name"
            Name
         )
         (setq Rtn (equal (vlxls-sheet-get-active xlapp) name))
      )
   )
   Rtn
)

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2022-11-3 12:13:02 | 显示全部楼层
(vlax-put-property
            (vlax-invoke-method
               (vlax-get-property excel "sheets" )
               "Add"
            )
            "name"
            Name
         )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-26 06:27 , Processed in 0.159206 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表