VBA设置两组形状互斥显隐时报运行时错误438问题咨询
错误原因
- 报错的核心是你代码中两处仅写了
.Visible属性名,没有为该布尔属性赋值True/False,VBA无法识别该语句的操作意图,因此触发438错误。
双按钮方案修复代码
Private Sub CommandButton3_Click() ' 隐藏Group 34,显示Group 6 ActiveSheet.Shapes("Group 34").Visible = False ActiveSheet.Shapes("Group 6").Visible = True End Sub Private Sub CommandButton4_Click() ' 隐藏Group 6,显示Group 34 ActiveSheet.Shapes("Group 34").Visible = True ActiveSheet.Shapes("Group 6").Visible = False End Sub
单切换按钮实现方案
如果要使用单个按钮实现互斥切换,无需额外判断初始状态,直接通过当前可见状态取反即可,使用普通CommandButton即可实现,示例代码如下:
Private Sub CommandButton_Toggle_Click() ' 读取Group 34当前可见状态,直接反转两个分组的显隐 Dim curVisible As Boolean curVisible = ActiveSheet.Shapes("Group 34").Visible ActiveSheet.Shapes("Group 34").Visible = Not curVisible ActiveSheet.Shapes("Group 6").Visible = curVisible End Sub
内容的提问来源于stack exchange,提问作者Hamza Ahmed
相关产品推荐
相关产品推荐

