【发布时间】:2020-07-07 05:27:29
【问题描述】:
我需要帮助,如果您了解 VBA,我认为这很容易:
我想要一个按钮或下拉菜单来展开/折叠特定的菜单标题。
这是文档布局的大纲(部门级别中也有菜单和数据,但我不需要折叠/展开这些级别):
- 日常流程
- A部
- B部
- C部
- D部
- 每周进程
- A部
- B部
- C部
- D部
- 每月流程
- A部
- B部
- C部
- D部
- 年度流程
- A部
- B部
- C部
- D部
- 附录
我希望每个部门都有按钮,隐藏所有其他部门。比如我点击A部门,B、C、D所有的菜单都会折叠,只显示A部门。
我想这些是我需要的按钮:
- 全部展开
- ShowDeptA
- ShowDeptB
- ShowDeptC
- ShowDeptD
这是我认为可行的一个部门的伪代码:
- 全部展开
- 从文档顶部开始
- 搜索格式=标题2
- 如果 Heading2=DepartmentA:展开标题, 其他:折叠标题
到目前为止我所拥有的:(我只需要命令来折叠标题)
Sub OpenDeptA()
'
' OpenDeptA Macro
' Show only DeptA sections
'
' Expand all menus
ActiveDocument.ActiveWindow.View.ExpandAllHeadings
' Move cursor to the top
Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
Selection.HomeKey Unit:=wdStory
' Find first menu using format: Heading 2
Selection.Find.Style = ActiveDocument.Styles("Heading 2")
Selection.Find.Execute
' Loop through document collapsing heading if not equal to "DeptA"
Do Until Selection.Find.Found = False
If Selection.Text = "DeptA" Then
Selection.Find.Style = ActiveDocument.Styles("Heading 2")
Selection.Find.Execute
Else: Selection.CollapseHeading ***NOT SURE HOW TO COLLAPSE MENUS***
Selection.Find.Style = ActiveDocument.Styles("Heading 2")
Selection.Find.Execute
End If
Loop
End Sub
【问题讨论】:
-
问题是我们这里不是免费写代码的。如果您已经自己尝试过某些东西,我们会提供支持。那么,你有吗?
-
您可以随时重新编辑您的问题,而不是添加难以阅读的 cmets。
-
@KazJaw,谢谢。我更新了我原来的帖子。
-
谁能帮我解决这个问题?
-
问题是你写的问题的第一句话是错误的:
I think this is pretty easy if you know VBA。确实,没那么容易……