明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1076|回复: 5

[提问] 怎么用LISP实现把打开的表格中所有A替换成B

[复制链接]
发表于 2020-3-21 13:36 | 显示全部楼层 |阅读模式

怎么用LISP实现把打开的表格中所有A替换成B,麻烦大神们指点一下,谢谢
LISP代码
(defun c:tt ()
  (setq excel (vlax-get-object "excel.application"));;;;获取当前表格
  需要实现的效果把表格中A替换成B
  )




EXCE中VBA代码如下
Sub 宏1()
    Cells.Replace What:="A", Replacement:="B", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub



AAAAA
AAAAA
AAAAA
AAAAA
ABBBBAA
ABBBBAA
ABBBBAA
ABBBBAA
ABBBBAA
ABBBBAA
ABBBBAA
ABBBBAA
ABBBBAA
AAAAA
AAAAA
AAAAA
AAAAA
AAAAA
AAAAA
AAAAA


"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-3-22 12:49 | 显示全部楼层
用vb注册个控件供lisp用
发表于 2020-3-22 21:34 | 显示全部楼层
本帖最后由 jun353835273 于 2020-3-22 21:38 编辑

(setq excel (vlax-get-object "excel.application"))
(setq Sheets (Vlax-Get-property excel 'Worksheets ))
(setq sheet (Vlax-Get-Property Sheets 'Item 1 ))
(setq cells (vlax-get-property sheet 'cells))
(setq Range (Vlax-Get-Property (Vlax-Get excel 'ActiveSheet) 'Range "A1:A3"));可以根据表自己改,或者改成选择区域的对象
(vlax-invoke Range 'Replace "A" "B");调用Replace函数
lisp写这玩意不太方便,没有函数自动补全,查方法只有看帮助文件


 楼主| 发表于 2020-3-22 23:49 | 显示全部楼层
jun353835273 发表于 2020-3-22 21:34
(setq excel (vlax-get-object "excel.application"))
(setq Sheets (Vlax-Get-property excel 'Worksheet ...

谢谢大神
发表于 2020-3-23 16:50 | 显示全部楼层
CAD本身就有这个功能, 编辑~查找~替换 (选择局部替换或者全部替换 )
发表于 2020-3-26 16:05 | 显示全部楼层
〆看_淡点 发表于 2020-3-23 16:50
CAD本身就有这个功能, 编辑~查找~替换 (选择局部替换或者全部替换 )

他那个是替换excel里面的内容不是CAD里面的文字
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-6-13 16:19 , Processed in 0.142714 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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