Word VBA:如何判断一个单词是否有格式,如果有,则对其进行修改?

杜克银

我正在尝试创建一个脚本,它将常规 Word 文档格式转换为我公司内部内容系统的 wikiformatting。例如:

这是粗体=> "__这是粗体__"

我一直在尝试通过 Word VBA 来做到这一点,但我根本没有取得任何进展。(就其价值而言,我对 Excel VBA 非常熟悉。)这是我目前所拥有的:

Sub convertFormatting()
    For Each sentence In ActiveDocument.StoryRanges
        For Each w In sentence.Words
            If w.Font.Bold = True Then
                newWord = "__" & w
                Debug.Print "Great, I figured out that it's bold. Now what?"
            End If
        Next
    Next

End Sub
伊索托拉

试试这个

我首先录制了一个宏来搜索“粗体格式”(没有搜索文本...格式...字体...粗体)

然后在程序在“ Selection.Find.Execute ”行之后暂停时使用“观察窗口”检查“ Selection ”对象

Sub convertBold2wiki()

    With Selection.Find             ' this sets up the "find" parameters
        .ClearFormatting
        .Font.Bold = True
        .Replacement.ClearFormatting
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = False
    End With

    Dim txt As String
    Dim found As Boolean

    Do While True
        found = Selection.Find.Execute    ' returns false on "not found"

        If Not found Then Exit Do

        txt = Selection.Range.Text        ' this is the found text
        Debug.Print txt
        Debug.Print Selection.Start
        Debug.Print Selection.End


        Selection.Font.Bold = False       ' un-bold the found text, otherwise ... well you know

        If Len(Selection.Text) > 0 Then   ' make sure that you are not inserting text at cursor
            Selection.Range.Text = "__" & txt & "__"
        End If
    Loop
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果有一个单词,如何删除行列

来自分类Dev

在单词的有序序列中:“ Word1,Word2,Word3”:如何在“ Word1”和“ Word3”上只有1个超链接?因此,在单个链接中跳过一个单词?

来自分类Dev

如何确定一个数组是否具有连续的整数,如果有,则有几个?

来自分类Dev

VBA Word-根据单词的第一个字母格式化单词的颜色

来自分类Dev

如何使用sed替换“ word {word”或“ word} word”

来自分类Dev

恢复上一个屏幕(如果有)

来自分类Dev

如果有条件地出现在一组人中,则对其进行识别(下一个)

来自分类Dev

如果有一个版本,我如何指示其构建使用其依赖版本,否则在我的工件中使用该版本

来自分类Dev

如果有一个公用密钥,如何求和json阵列密钥的值

来自分类Dev

如果有一个线程,异步任务如何说它们“完成”了?

来自分类Dev

如果有一个选项,如何禁用选择下拉菜单?

来自分类Dev

如果有多个用户,如何使Windows自动登录到一个用户?

来自分类Dev

如果有一个公用密钥,如何求和json数组密钥的值

来自分类Dev

如果有一个线程,异步任务如何说它们“完成”了?

来自分类Dev

Word 样式如何应用其格式设置?

来自分类Dev

Word中是否有一个文本标记标签列表

来自分类Dev

Gensim:是否有机会获得Word2Vec格式的单词频率?

来自分类Dev

Word对象中的Word VBA范围

来自分类Dev

Word数学格式

来自分类Dev

使所有单词在MS Word中的段落

来自分类Dev

Word VBA行长约束

来自分类Dev

VBA Word异步执行

来自分类Dev

从Word到Excel的VBA

来自分类Dev

CrossReference的Word VBA

来自分类Dev

VBA Microsoft Word

来自分类Dev

Word中的VBA阵列

来自分类Dev

Word VBA多表选择

来自分类Dev

如果有任何错误,如何执行双“if”语句跳转到同一个“else”

来自分类Dev

如何关闭Word文档

Related 相关文章

  1. 1

    如果有一个单词,如何删除行列

  2. 2

    在单词的有序序列中:“ Word1,Word2,Word3”:如何在“ Word1”和“ Word3”上只有1个超链接?因此,在单个链接中跳过一个单词?

  3. 3

    如何确定一个数组是否具有连续的整数,如果有,则有几个?

  4. 4

    VBA Word-根据单词的第一个字母格式化单词的颜色

  5. 5

    如何使用sed替换“ word {word”或“ word} word”

  6. 6

    恢复上一个屏幕(如果有)

  7. 7

    如果有条件地出现在一组人中,则对其进行识别(下一个)

  8. 8

    如果有一个版本,我如何指示其构建使用其依赖版本,否则在我的工件中使用该版本

  9. 9

    如果有一个公用密钥,如何求和json阵列密钥的值

  10. 10

    如果有一个线程,异步任务如何说它们“完成”了?

  11. 11

    如果有一个选项,如何禁用选择下拉菜单?

  12. 12

    如果有多个用户,如何使Windows自动登录到一个用户?

  13. 13

    如果有一个公用密钥,如何求和json数组密钥的值

  14. 14

    如果有一个线程,异步任务如何说它们“完成”了?

  15. 15

    Word 样式如何应用其格式设置?

  16. 16

    Word中是否有一个文本标记标签列表

  17. 17

    Gensim:是否有机会获得Word2Vec格式的单词频率?

  18. 18

    Word对象中的Word VBA范围

  19. 19

    Word数学格式

  20. 20

    使所有单词在MS Word中的段落

  21. 21

    Word VBA行长约束

  22. 22

    VBA Word异步执行

  23. 23

    从Word到Excel的VBA

  24. 24

    CrossReference的Word VBA

  25. 25

    VBA Microsoft Word

  26. 26

    Word中的VBA阵列

  27. 27

    Word VBA多表选择

  28. 28

    如果有任何错误,如何执行双“if”语句跳转到同一个“else”

  29. 29

    如何关闭Word文档

热门标签

归档