永不言弃 发表于 2020-3-21 13:36:46

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


怎么用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



jun353835273 发表于 2020-3-22 12:49:56

用vb注册个控件供lisp用

jun353835273 发表于 2020-3-22 21:34:40

本帖最后由 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:40

jun353835273 发表于 2020-3-22 21:34
(setq excel (vlax-get-object "excel.application"))
(setq Sheets (Vlax-Get-property excel 'Worksheet ...

谢谢大神:handshake:handshake

〆看_淡点 发表于 2020-3-23 16:50:53

CAD本身就有这个功能, 编辑~查找~替换 (选择局部替换或者全部替换 )

jun353835273 发表于 2020-3-26 16:05:32

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

他那个是替换excel里面的内容不是CAD里面的文字
页: [1]
查看完整版本: 怎么用LISP实现把打开的表格中所有A替换成B