【问题标题】:Cannot save the change of the text color using Word VBA?无法使用 Word VBA 保存对文本颜色的更改?
【发布时间】:2021-05-06 23:05:26
【问题描述】:

我正在尝试使用 Word VBA 设置文本颜色。但是,Word 似乎并没有将颜色变化视为“变化”。以下面的 VBA 代码为例,在我运行之后,Word Undo 不包含任何内容。如果我直接退出 Word,Word 不会提示保存更改。你能帮忙评论一下吗?非常感谢您的意见!

Public Sub Test()
    ActiveDocument.Range.Font.TextColor = wdColorBlue
End Sub

PS:Windows 7 SP1 X64 上的 Word 2010 x86。

【问题讨论】:

  • 修改后可以设置ActiveDocument.Saved=False,“保存修改?”然后将在关闭时触发。
  • @Tim 谢谢!但我想知道为什么设置文本颜色不被视为“更改”? @尼尔不,不是。

标签: vba ms-word word-2010


【解决方案1】:

不要使用 TextColor 属性,而是使用 Color 属性:

ActiveDocument.Range.Font.Color = wdColorBlue

如果您这样做,使用 Font.Color,Word 将注册更改并将其视为要撤消的内容。 TextColor 属性不是 Word 正式可配置的属性;文档将其定义为只读。您可以通过 TextColor 属性有效地更改文本颜色这一事实是异常的,正如 vba 的智能感知在键入“Font”时会显示 TextColor 而不是 Color。尽管如此,很明显(至少在一个级别上)Word 将 TextColor 视为只读,因此它不会完全注册对该属性的更改。

【讨论】:

    【解决方案2】:

    Word 2013

    我尝试了下面的代码,没有问题。撤消适用于每个命令行。关闭时Word照常提示保存更改

    Public Sub Test()
       ActiveDocument.Range.Font.TextColor = wdColorBlue
       ActiveDocument.Range.Font.TextColor = wdColorBrightGreen
       ActiveDocument.Range.Font.TextColor = wdColorRed
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-12
      • 2011-02-01
      • 2012-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多