ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: weiyingde

[已解决] word更改格式,未达理想效果。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-2-5 22:01 | 显示全部楼层
Sub test()
    Dim rg As Range
    With ActiveDocument.Content.Find
        .ClearFormatting
        .Text = "注意事项:*^13[!0-9]"
        .MatchWildcards = True
        .Execute
        If .Found = True Then
            Set rg = .Parent
            rg.SetRange rg.Start + 5, rg.End - 1
            rg.Font.ColorIndex = wdRed
        End If
    End With
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-6 09:26 | 显示全部楼层
本帖最后由 weiyingde 于 2020-2-6 10:26 编辑

两句很受用:
.Text = "注意事项:*^13[!0-9]"
rg.SetRange rg.Start + 5, rg.End - 1.SetRange 还是第一次接触。
以前都是
with .parent
      .movestart 1,5
      .moveend 1,-1     .Font.ColorIndex = wdBlack
     .Font.Name = "华文楷体"
     .Font.Size = 9.5
     .Font.Bold = False
end with
解决,这样写要简洁许多。
谢谢你,解决问题了。
以后还有问题,请不吝赐教!


TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-6 14:21 | 显示全部楼层
本帖最后由 weiyingde 于 2020-2-7 18:54 编辑

                             小结一下

查找替换文本和格式,分两种情况:
(一)、不改变目标区域的范围,这样可以用一次性替换法。代码如下:
Sub 一次替换更改注意条款格式()
Dim rg As Range
With ActiveDocument.Content.Find
    .ClearFormatting
    With .Replacement
         .ClearFormatting
         With .Font
              .ColorIndex = wdRed
              .Name = "楷体"
              .Size = 9.5
              .Bold = False
         End With
    End With
    .Execute "注意事项:*^13[!0-9]", , , 1, , , 1, , , "^&", 2
End With
End Sub
(二)、如果要改变目标区域的范围,有两种方法。
1、如果被查找的只有一处,可用下面的代码。
Sub 更改注意条款格式()
Dim rg As Range
With ActiveDocument.Content.Find
          .ClearFormatting
          .Execute "注意事项:*^13[!0-9]", , , 1
          Set rg = .Parent
             With rg
                  '.SetRange rg.Start + 5, rg.End - 1

                 With Range(.Start, .Start + 5).Font
                       .Name = "方正苏新诗柳楷简体"
                       .ColorIndex = wdDarkRed
                       .Size = 14
                  End With
                  .MoveStart 1, 5: .MoveEnd 1, -1
                  With .Font
                       .ColorIndex = wdRed
                       .Name = "楷体"
                       .Size = 9.5
                       .Bold = False
                  End With
             End With
End With
End Sub

2、若被查找的内容有多处,必须用循环。Do……Loop。
Sub 更改多处注意条款格式()
Dim rg As Range
With ActiveDocument.Content.Find
       .ClearFormatting
       Do While .Execute("注意事项:*^13[!0-9]", , , 1)
       Set rg = .Parent
       With rg
           '.SetRange rg.Start + 5, rg.End - 1
            .MoveStart 1, 5: .MoveEnd 1, -1
            With .Font
                 .ColorIndex = wdRed
                 .Name = "楷体"
                 .Size = 9.5
                 .Bold = False
            End With
           .Collapse 0
       End With
    Loop
End With
End Sub

注意:根据测试结果,第一种方法,.Execcute在面;而第二种,.Execcute在面。







查找和更改.rar

24.63 KB, 下载次数: 13

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-28 07:15 , Processed in 0.037539 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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