首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据下拉列表中的选择,在MS word中隐藏/取消隐藏文本块

根据下拉列表中的选择,在MS word中隐藏/取消隐藏文本块
EN

Stack Overflow用户
提问于 2018-04-02 04:41:35
回答 1查看 2.3K关注 0票数 0

我们这里有多个产品,我正在为他们在MS Word中创建一个需求文档。这些产品几乎没有什么共同之处,而且很少有特性是针对单个产品的。

我想要创建一个包含产品名称的下拉列表的单一需求文档。每当有人选择一个产品时,文档就应该显示所有产品的共同需求、特定于该产品的需求以及隐藏特定于其他产品的需求。

例如,如果有两个产品列出了Product_1和Product_2。选择Product_1应该只显示与Product_1相关的需求,并隐藏与Product_2相关的需求。

这是我搜索并尝试过的-

代码语言:javascript
运行
复制
Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
If ContentControl.Tag = "List" Then
   Bookmarks("Product_1").Range.Font.Hidden = False
   Bookmarks("Product_2").Range.Font.Hidden = False

   Select Case ContentControl.Range.Text
      Case "Product_1"
           Bookmarks("P2").Range.Font.Hidden = True
      Case "Product_2"
           Bookmarks("P1").Range.Font.Hidden = True
     End Select
End If
End Sub

,但问题是我不能在单个Bookmark.下标记多个文本块

让我知道做这个任务的另一种方式是什么?

请看屏幕截图。

提前感谢

尼廷·贾达夫

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-02 06:24:26

你应该往相反的方向走:

  • 将任何特定于"Product_1“的要求与"Product_1_1”、"Product_1_2“、.
  • 将任何特定于"Product_2“的要求与"Product_2_1”、"Product_2_2“、.
  • 与其他产品类似

然后按以下方式更改事件处理程序:

代码语言:javascript
运行
复制
Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
    Dim bkm As Bookmark

    If ContentControl.Tag = "List" Then
        For Each bkm In ActiveDocument.Bookmarks
            bkm.Range.Font.Hidden = InStr(bkm.Name, "Product_") And Not InStr(bkm.Name, ContentControl.Range.Text)
        Next
    End If
End Sub
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49605391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档