excel - 如何使用 VBA 使用选项按钮显示/隐藏工作表(Worksheet_Change 不是由选项值触发)
问题描述
我正在尝试根据单元格值显示或隐藏工作表。我曾经通过下拉列表来实现这一点,但我现在正尝试使用选项按钮。由于改变了方法,我的代码不再有效。
在我的示例中,下拉列表 ( JobType ) 有选项 Empty、“Type1”和“Type2”作为可能的值。
我现在有两个选项按钮,而不是下拉菜单,一个用于“Type1”和“Type2”。这些链接到单元格 G10。
单元格 H10 名为JobType并包含以下公式:
=IF(G10=1, "Type1", IF(G10=2, "Type2", ""))
我希望MyWorksheet在选择“Type1”或“Type2”按钮时可见,而在它们都被清除时不可见。
我正在使用以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("JobType"), Target) Is Nothing Then
Application.ScreenUpdating = False
Worksheets("ThisWorksheet").Visible = False
Select Case Range("JobType").Value
Case "Type1"
Worksheets("ThisWorksheet").Visible = True
Case "Type2"
Worksheets("ThisWorksheet").Visible = True
End Select
Application.ScreenUpdating = True
End If
End Sub
这适用于下拉菜单,但不适用于我现在使用的方法。
我猜这与用公式替换单元格中的直接值有关吗?任何指导将不胜感激。
解决方案
公式的计算更改不会触发 Worksheet_Change,因此 Target 永远不会是 H10。您需要使用由选项按钮设置值的 G10。
您可以在 Select Case 中堆叠多个可能的结果。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("G10"), Target) Is Nothing Then
on error goto safe_exit
Select Case clng(target.Value)
Case 1, 2
Worksheets("ThisWorksheet").Visible = True
Case else
Worksheets("ThisWorksheet").Visible = false
End Select
End If
safe_exit:
End Sub
推荐阅读
- python - 在 CNN,张量流中初始化后形状怪异的内核
- haskell - 使用简单函数使用 'print' 引起的模棱两可的类型变量 'a0'
- r - R Shiny:renderUI + uiOutput多个输入条件异步
- angular - Angular CDK 虚拟滚动不会一次选择 matselect 中的所有列大型数据集
- r - dplyr 组操作添加 na
- javascript - 从 Vue 中的插槽更新父级中的状态
- javascript - 将文件从我的服务器 API 上传到另一个 API - Node JS (Express)
- c++ - 如何使用内置排序功能对二维数组进行排序
- amazon-web-services - Jenkins 管道正在抛出无法连接到端点 URL:“https://ecs.ap-south-1.amazonaws.com/”
- javascript - 未捕获的 TypeError:google.translate.TranslateService 不是构造函数