excel - 将宏分配给多个复选框
问题描述
我有几个复选框(表单控件)位于同一张表中。当我单击任何复选框时,我需要它隐藏指定的行范围和 2 个指定的滚动条。
我最初使用了一个 Active Control Check Box,并编写了这个有效的代码(这专门为 CheckBox1 工作):
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
[105:112].EntireRow.Hidden = True
ActiveSheet.Shapes("Scroll Bar 79").Visible = False
ActiveSheet.Shapes("Scroll Bar 82").Visible = False
Else:
[105:112].EntireRow.Hidden = False
ActiveSheet.Shapes("Scroll Bar 79").Visible = True
ActiveSheet.Shapes("Scroll Bar 82").Visible = True
End If
End Sub
但是,我想创建一个更通用的代码,因为我有 60 个这样的复选框(如下所述)。此代码有四个变量:1)复选框名称 2)行范围 3)滚动条 1 4)滚动条 2
对于工作表中的每个复选框,我希望能够更改 4 个变量名称。在将宏分配给每个复选框时,我尝试使用这种格式 'NameOfMacro "variable1", "variable2"',但这并没有奏效!
Sub Hide ()
Dim chkBox As CheckBox
Dim RowRange As Range
Dim SB1 As Shape
Dim SB2 As Shape
Set chkBox = ActiveSheet.CheckBoxes(Application.Caller)
If chkBox.Value = True Then
[RowRange].EntireRow.Hidden = True
ActiveSheet.Shapes("SB1").Visible = False
ActiveSheet.Shapes("SB2").Visible = False
Else:
[RowRange].EntireRow.Hidden = False
ActiveSheet.Shapes("SB1").Visible = True
ActiveSheet.Shapes("SB2").Visible = True
End If
End Sub
我在两个方面遇到了麻烦
1)创建一个通用宏,我得到诸如“无法获取工作表类的复选框属性”之类的错误。如何使复选框名称可变?2) 将相同的宏分配给多个复选框,同时能够使用此方法更改参数:'NameOfMacro "variable1", "variable2"'
任何帮助将不胜感激!
解决方案
您需要为您的Hide
例程设置一个参数。然后将复选框的值传递给该参数。这会给你你想要的行为。只需为每个复选框制作一个:
Private Sub CheckBox1_Click()
HideRow CheckBox1.Value, ActiveSheet.Range("A105:A112"), "Scroll Bar 79", "Scroll Bar 82"
End Sub
Public Sub HideRow(ByVal hiding As Boolean, ByVal rowRange As Range, ByVal ScrollBarOne As String, ByVal ScrollBarTwo As String)
If hiding Then
rowRange.EntireRow.hidden = True
ActiveSheet.Shapes(ScrollBarOne).Visible = False
ActiveSheet.Shapes(ScrollBarTwo).Visible = False
Else
rowRange.EntireRow.hidden = False
ActiveSheet.Shapes(ScrollBarOne).Visible = True
ActiveSheet.Shapes(ScrollBarTwo).Visible = True
End If
End Sub
推荐阅读
- dialogflow-es - 如何在 api.ai 对话流中将用户查询从一个代理路由到其他代理
- python - 获取作为列表列表的输出
- asp.net - 接收值重置的类
- python - Python Cantera MassFlowController 不会从反应器中提取质量
- vb.net - VB.NET 上的导入和 DatabaseDataContext
- sql-server - SQL与Excel中的整数到日期转换问题
- linux - 匹配来自两个文件的字符串,并将第一个文件中匹配字符串的行追加到第二个文件的行尾
- javascript - 从正则表达式解析 css 伪元素内容
- oracle - 数据库触发器以验证节点是否为叶子节点
- python - 从熊猫数据框中的 ufloat 中提取名义偏差和标准偏差