【发布时间】:2020-10-15 06:07:29
【问题描述】:
我在 Microsoft Word 中有一个大表,我想突出显示最后一列中的一组单元格,并将其中的文本从“当前”更改为“已更改”。我知道您可以只使用复制和粘贴或使用查找/替换,但我每天会多次这样做,因此只需突出显示并单击一个按钮就会非常有用。
我在 Excel 中有一些 VBA,可以在电子表格上正常工作,但在 Word 中似乎不工作。
Sub WordEdit()
Dim x As Range
For Each x In Selection
If x.Value <> "" Then x.Value = "Changed"
Next
End Sub
我不是 VBA 专家,因此我们将不胜感激。谢谢。
【问题讨论】:
-
到目前为止你尝试过什么?您是否尝试过录制宏并对其进行编辑?您是否使用对象浏览器查找相关对象,或使用 F1 在文档中查找内容?
-
尝试在 Word 上录制宏,但它只编辑了我选择的第一个单元格。查看了我用来帮助创建上述 VBA 的文档,但它似乎不适用于 Word。完成了无数的谷歌搜索并查看了堆栈溢出,但这一切似乎都是针对 Excel 的,而我尝试的任何方法似乎都不适用于 Word。
-
宏记录器使用 Selection 对象记录所有内容。然后为了概括代码以便它可以在任何地方工作,您通常将所有内容切换到 Range 对象。要查找特定于 Word 的 VBA,请在搜索词中添加引号中的“Word”和 -Excel(带减号)。
-
@JohnKorchok 谢谢,我会看一下 Range 对象,看看我能不能得到任何结果。
-
录制宏可为您提供所需的语法和研究的起点。您录制的宏会显示在 Word 中您设置了
Text属性,而不是Value。在对象浏览器中查找Selection,您会发现它包含一个Cells集合。选择Cells的帮助将带您进入 Word VBA 文档,您将在其中学习如何循环浏览集合。作为一名 IT 顾问,您应该习惯于逻辑思考问题并使用可用的研究工具。