将 Word 文档中的粗体、斜体、粗体和斜体文本转换为其等效的 Markdown 文本,而不会将包含的星号移动到下一段

问题描述 投票:0回答:1

好的,我有一份Word文档。它有一堆文本,有些是正常的,有些是斜体的,有些是粗体的,有些是粗体和斜体的。

我想浏览整个文档并用星号封闭的相同内容替换斜体(或封装它)。

eg. Italics = *Italics*, Bold = **Bold**, BoldandItalics = ***BoldandItalics***. 

我不想将整个内容转换为 Markdown 格式,只需这三件事。

我尝试使用“查找和替换”功能来选择斜体但不是粗体的文本并替换为

*^&*
。将粗体替换为
**^&**
以及同时替换为
***^&***
的粗体。

问题是我每次都这样做。 Word 将结束星号推到下一段。

例如。查找和替换之前:

古古加加

查找并替换后:

*googoogaga
*

上面的最终结果在word中仍然可以保持斜体。这不是问题,但由于Stack Overflow显然在这里使用Markdown格式,只是想澄清一下。

很长一段时间以来,这一直困扰着我。我尝试从 ChatGPT 获取帮助,它建议了一些使用 VBA 的内容,但足以说明它不起作用并且遇到了同样的问题。

ms-word formatting markdown
1个回答
0
投票

简单:

Sub ApplyMarkDown()
Application.ScreenUpdating = False
With ActiveDocument.Range.Find
  .ClearFormatting
  .Replacement.ClearFormatting
  .Forward = True
  .Format = True
  .MatchWildcards = True
  .Wrap = wdFindContinue
  .Font.Bold = True
  .Text = "[!^13^l]{1,}"
  .Replacement.Text = "**^&**"
  .Execute Replace:=wdReplaceAll
  .ClearFormatting
  .Font.Italic = True
  .Replacement.Text = "*^&*"
  .Execute Replace:=wdReplaceAll
End With
Application.ScreenUpdating = True
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.