【问题标题】:Programmatically change a certain font+size to a different font+size以编程方式将某个字体+大小更改为不同的字体+大小
【发布时间】:2015-01-22 22:11:23
【问题描述】:

我有一个 ms-word 文档,其中 Helvetica 13.5 是段落的主要字体。不幸的是,它与文档中任何特定的预定义样式无关(文本是从网站复制到文档中的)。此外,您会看到段落中嵌入了一些斜体字和一些“Courier New”字样。

我想做的是浏览文档,寻找具有单一字体/大小的文本的 sn-ps。如果该文本是 Helvetica 13.5,我想将其更改为 Times New Roman 12。我不想将嵌入的 courier 更改为新的。斜体字应该保持斜体(但如果是 Helvetica/13.5,它们的字体应该改变)

有没有“简单”的方法来做到这一点?

谢谢

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    我不知道如何以编程方式执行此操作,但我知道 Word 具有基于格式进行查找和替换的能力。以下是你的做法:

    • 在您的文档中,Windows 使用 Ctrl-G,Mac 使用 Command-Option-G。这将打开“转到”窗口。
    • 选择替换选项卡
    • 在“替换”选项卡中,对于 Windows,您应该看到“更多 >>”,对于 Mac,您应该看到“v”(向下箭头)。点击该按钮,即可调出额外功能。
    • 现在点击底部的格式按钮选择您要查找的格式。
    • 要选择所需的新格式,请选择“替换为”文本字段,然后执行与上一步相同的操作。您的选项应显示在相应的文本字段下方。
    • 准备就绪后,点击全部替换

    注意:如果您希望替换只匹配基于格式的文本,请将文本字段留空

    【讨论】:

      【解决方案2】:
       Sub Helv_to_TNR
      
       With ActiveDocument.Content.Find
      .ClearFormatting
      .Replacement.ClearFormatting
      .Wrap = wdFindContinue
      .format = True
      .MatchCase = False
      .MatchWholeWord = False
      .MatchWildcards = False
      .MatchSoundsLike = False
      .MatchAllWordForms = False
      .Text = ""
      .Replacement.Text = ""
      .Font.Size = 13.5
      .Replacement.Font.Size = 11
      .Font.Name = "Helvetica"
      .Replacement.Font.Name = "Times New Roman"
      .Execute Replace:=wdReplaceAll
      end with
      
      end sub
      

      【讨论】:

        猜你喜欢
        • 2021-01-06
        • 2013-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-27
        • 1970-01-01
        相关资源
        最近更新 更多