Word VBA:有没有办法将变量插入搜索和替换宏?

Word VBA:有没有办法将变量插入搜索和替换宏?

所以我想要做的是让宏通过以下方式找出文档的页数:

pages.count

据我所知,在这种情况下使用搜索和替换方法是不可能的,因为我无法将变量插入到

replacement.text

我尝试的另一种方法是,首先找到需要替换的文本部分的位置,选择它,然后使用

Selection.TypeText Text:=Pages.Count

但这会导致对象需要错误。所以这也行不通。因此,我不知道该用什么方法来替换文本。

有人知道如何解决这个问题吗?

答案1

我并不想说得深奥难懂,但实际上 Microsoft Word 中没有真正的“页面”这样的东西。由于 Microsoft Word 是一个文字处理程序,而不是页面布局程序,因此 Microsoft Word 会动态地依赖许多因素来确定打印页面上的内容。其中包括字体、点大小、间距、边距设置、页面类型、页面方向、打印驱动程序设置等。

因此,强制将某些内容插入固定页码是不可或缺的……而且,如果不进一步了解您到底想要完成什么,我们只能进行猜测。

请完整描述您正在尝试做的事情。

答案2

使用内容控件。您可以标记它们,然后搜索并替换它们的文本。下面是一个屏幕截图,您可以看到我选择的那个带有模块小时数标签。在您的 VBA 代码中,您将有一个类似于我在下面作为示例包含的例程,该例程搜索文档中的所有内容控件,然后替换所需的控件文本。 在此处输入图片描述

        For Each cc In doc.ContentControls
        If cc.Tag = "Course hours" Then
            cc.Range.Text = courseHours
        End If
        If cc.Tag = "Course minutes" Then
            cc.Range.Text = courseMinutes
        End If
        Next

相关内容