批量替换多个dwg内文字和多行文字(CAD vba)

打开一个新建DWG图形,运行CAD VBA,根据弹出对话框提示选择文件夹,点击确定即可自动执行程序,替换文件夹内所有DWG文件的字体(替换前文字和替换后文字需在代码中自己修改)。

插件使用方法:cad命令行输入:appload,加载此插件,然后运行宏即可(有其他事项请联系博主)。

代码如下:



Sub 替换cad文字()
'yngqq443440204
Dim ftype(0) As Integer, fdata(0) As Variant
Dim folderPath As String
Dim path As String
Dim oldText As String
oldText = "王" '需要替换的文字 旧文字
Dim newText As String
newText = "汪" '替换后的文字
Dim counter As Integer
counter = 0 '计数器,记录替换的文字数量
Dim fileName As String
folderPath = "C:\Users\Administrator\Desktop\新建文件夹" '替换成你的文件夹路径
fileName = Dir(folderPath & "\*.dwg")  '获取文件夹中的DWG文件
Do While fileName <> ""
    ftype(0) = 0: fdata(0) = "text,mtext"
    Dim acadDoc As AcadDocument
    Set acadDoc = Documents.Open(folderPath & "\" & fileName)
    Dim selSet As AcadSelectionSet
    Set selSet = ThisDrawing.SelectionSets.Add("MySelectionSet")
    selSet.Select acSelectionSetAll, , , ftype, fdata
    Dim objText As Object
    For Each objText In selSet
        If InStr(1, objText.TextString, oldText, vbTextCompare) > 0 Then
        objText.TextString = Replace(objText.TextString, oldText, newText, , , vbTextCompare)
        ThisDrawing.Regen acActiveViewport
        counter = counter + 1
        End If
    Next objText
    selSet.Delete
    ThisDrawing.Close
    fileName = Dir()
Loop
MsgBox "共替换了 " & counter & " 个文字 " & Space(20) & vbCr & "业务合作请联系qq:443440204", , "版权所有qq:443440204"
End Sub


评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值