sjz_zxh 发表于 2003-10-21 17:42:00

急!!在CAD2002中如何批量查找替换文字?

在CAD2002中如何批量查找替换文字?
在CAD文件中有许多连续的数字。我想把每个数都加上一个1。即:1变成2,2变成3。。。
用VBA该如何实现呢?谢谢。。

mccad 发表于 2003-10-22 20:16:00

Sub AddNum()
    Dim Txt As AcadText
    Dim Obj As AcadEntity
    For Each Obj In ThisDrawing.ModelSpace
    If Obj.ObjectName = "AcDbText" Then
      Set Txt = Obj
      If Val(Txt.TextString) <> 0 Or Txt.TextString = "0" Then
            Txt.TextString = Val(Txt.TextString) + 1
      End If
    End If
    Next Obj
    Update
End Sub

sjz_zxh 发表于 2003-10-25 18:09:00

谢谢。那要是P1、P2、P3等每个都加1变成P2、P3、P4呢?
即:P1变P2、P2变P3、P3变P4。。。

mccad 发表于 2003-10-26 00:01:00

Sub AddNum()
    Dim Txt As AcadText
    Dim Obj As AcadEntity
    Dim strTxt As String
    Dim rTxt As String
    strTxt = ThisDrawing.Utility.GetString(0, vbCrLf & " 输入文字的前缀<P>:")
    If strTxt = "" Then strTxt = "P"
    For Each Obj In ThisDrawing.ModelSpace
    If Obj.ObjectName = "AcDbText" Then
      Set Txt = Obj
      rTxt = Right(Txt.TextString, Len(Txt.TextString) - Len(strTxt))
      If Left(Txt.TextString, Len(strTxt)) = strTxt And (Val(rTxt) <> 0 Or rTxt = "0") Then
            Txt.TextString = strTxt + Trim(Str(Val(rTxt) + 1))
      End If
    End If
    Next Obj
    Update
End Sub

莫名 发表于 2003-11-2 22:01:00

用菜单“编辑/查找 ”可以实现!

zhaobin210 发表于 2009-4-11 18:46:00

<p>怎么按上面的方法使不了啊,提示说,无效的变量</p>

清风明月名字 发表于 2012-3-22 22:21:00

谢谢mccad,两个宏都可有效运行

9937965 发表于 2012-3-27 22:11:47

这个要请高手来回答了,我是新人

wwswwswws 发表于 2012-4-19 11:27:11

这实际上是字符串操作的内容了,很简单的,多看看VBA的帮助文件,有许多的字符串操作函数可用的。明总亲自回复不容易哦,珍惜哦。
页: [1]
查看完整版本: 急!!在CAD2002中如何批量查找替换文字?