悬赏已过期 后悬赏过期
悬赏

有没有大哥帮忙看看这个插件啊 使用后会导致EXCEL后台残留 然后下次启动速度变慢很多

邀请:

 有没有大佬帮忙看看插件哪里有问题呀 在我电脑上使用后 退出EXCEL后 后台就会有残留 下次启动速度就变慢很多  LSP的

;; 检测Excel进程和COM对象状态的插件
(DEFUN C:QQQ (/ *error* XLSAPP XLSHT WB)
  ;; 错误处理函数
  (defun *error* (msg)
    "错误处理,按顺序释放Excel资源"
    (princ "\n错误: ")
    (princ msg)
    ;; 异常时释放顺序:工作表 → 工作簿 → 应用程序
    (when XLSHT 
      (vlax-release-object XLSHT)
      (setq XLSHT nil)
      (princ "\n异常释放工作表对象")
    )
    (when WB 
      (vlax-release-object WB)
      (setq WB nil)
      (princ "\n异常释放工作簿对象")
    )
    (when XLSAPP 
      (vlax-release-object XLSAPP)
      (setq XLSAPP nil)
      (princ "\n异常释放应用程序对象")
    )
    (princ)
  )

  (vl-load-com)
  
  ;; 尝试获取Excel应用程序对象
  (princ "\n尝试获取Excel应用程序对象...")
  (if (setq XLSAPP (vlax-get-object "Excel.Application"))
    (progn
      (princ "\nExcel应用程序对象已获取。")
      
      ;; 获取当前工作簿
      (princ "\n尝试获取当前工作簿对象...")
      (setq WB (vlax-get-property XLSAPP 'ActiveWorkbook))
      (if WB
        (princ "\n当前工作簿对象已获取。")
        (princ "\n未找到当前工作簿对象。")
      )
      
      ;; 获取当前活动工作表
      (princ "\n尝试获取当前活动工作表对象...")
      (setq XLSHT (vlax-get-property WB 'ActiveSheet))
      (if XLSHT
        (princ "\n当前活动工作表对象已获取。")
        (princ "\n未找到当前活动工作表对象。")
      )
      
      ;; 释放对象
      (if XLSHT
        (progn
          (vlax-release-object XLSHT)
          (setq XLSHT nil)
          (princ "\nExcel工作表对象已释放。")
        )
      )
      
      (if WB
        (progn
          (vlax-release-object WB)
          (setq WB nil)
          (princ "\nExcel工作簿对象已释放。")
        )
      )
      
      (if XLSAPP
        (progn
          (vlax-release-object XLSAPP)
          (setq XLSAPP nil)
          (princ "\nExcel应用程序对象已释放。")
        )
      )
    )
    (princ "\n未找到Excel应用程序对象。")
  )
  
  (PRINC)
)
收藏0
分享
您的回答

回答

默认排序 时间排序
图片审查中...
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
复制链接
微信扫码
已复制到剪贴板