【问题标题】:Hide/show a specific page in VBA Word在 VBA Word 中隐藏/显示特定页面
【发布时间】:2021-06-02 07:03:12
【问题描述】:

您好,我有一个 2 页的 word 文档,每页都有形状和文本框。我希望能够隐藏第二页或显示它。

我知道我们可以像下面这样在 excel 上隐藏一个工作表,但我不知道如何在 word 中做到这一点:

Worksheets("Sheet1").visible = False

所以我尝试了这个宏:

Sub HidePage2()
ActiveWindow.DocumentMap = True
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.TypeBackspace
CommandBars("Navigation").Visible = False 
End Sub

我以为我隐藏了我的页面,但实际上它删除了它,因为如果我用以下代码替换代码的末尾,它不会显示我的页码 2。

CommandBars("Navigation").Visible = True

我不知道如何解决我的问题,你能帮我吗?

【问题讨论】:

  • 在 Word 中隐藏页面一点也不难。然而,真正的问题是 Word 使用活动的打印机驱动程序来优化页面布局。这可能会导致您在使用不同的打印机时隐藏的内容并非全部落在同一页面上。
  • 但我关心的不是打印它......那么,如果不难的话,你知道如何在 VBA 中隐藏和显示带有宏的页面吗?

标签: vba ms-word


【解决方案1】:

段落和部分是 Word VBA 对象,页面不是。您可以将书签应用到要隐藏的每组段落,以及页面底部的分页符(如果有)。然后使用这样的代码来显示或隐藏它:

Sub HidePage2()
    ActiveDocument.Bookmarks("Page2Bookmark").Range.Font.Hidden = True
End Sub

Sub ShowPage2()
    ActiveDocument.Bookmarks("Page2Bookmark").Range.Font.Hidden = False
End Sub

Macropod 关于打印机驱动程序的评论是相关的,因为如果您有不同的活动打印机,文档的分页可能会改变。那么您认为在第 2 页上的内容可能部分在第 1 页或第 3 页上。您可以通过在第 2 页前后添加分页符并确保第 2 页没有完全填满来最小化这个问题。

【讨论】:

  • 您的 2 个宏“HidePage2”和“ShowPage2”可以完美地隐藏第 2 页的形状和文本框,但不幸的是,第 2 页仍然是空白的。即使我删除它并添加一个新的空白页,我也无法使用您的宏“ShowPage2”取回我的文本框和第二页的形状,因为书签已被删除。
  • 这只是告诉我们您没有为足够的内容添加书签(例如,如果您在第二页之前有手动分页符,也应该包括在内)。
  • 选择文件>选项>显示并选中显示所有格式标记可能有助于使分页符可见。
【解决方案2】:

例如,无需事先为页面添加书签:

Sub Demo()
ActiveDocument.Range.GoTo(What:=wdGoToPage, Name:="2").GoTo(What:=wdGoToBookmark, Name:="\page").Font.Hidden = True
End Sub

【讨论】:

    猜你喜欢
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 2013-02-16
    相关资源
    最近更新 更多