是否有方法在此access vba sub中使用循环和数组切换命令按钮视图
我正在使用此子控件切换access窗体中命令按钮的视图。但我想使用循环和可选命令按钮数组作为参数,因为按钮的数量最终会增加是否有方法在此access vba sub中使用循环和数组切换命令按钮视图,vba,ms-access,Vba,Ms Access,我正在使用此子控件切换access窗体中命令按钮的视图。但我想使用循环和可选命令按钮数组作为参数,因为按钮的数量最终会增加 enter code here Public Sub toggleView(x As Boolean, ByVal a As CommandButton, _ Optional ByVal b As CommandButton, Optional ByVal c As CommandButton, _ Optional ByVal d As CommandBut
enter code here
Public Sub toggleView(x As Boolean, ByVal a As CommandButton, _
Optional ByVal b As CommandButton, Optional ByVal c As CommandButton, _
Optional ByVal d As CommandButton)
a.Visible = x
b.Visible = x
c.Visible = x
d.Visible = x
End Sub
差不多吧
Private Sub UserForm_Click()
Dim a() As CommandButton
ReDim a(2)
Set a(0) = Me.CommandButton1
Set a(1) = Me.CommandButton2
Set a(2) = Me.CommandButton3
ButtonSub a
End Sub
Function ButtonSub(arr() As MSForms.CommandButton)
End Function
您可以使用控件的.Tag属性。对于要切换可见性的每个控件,请将.Tag属性设置为“toggle”,然后将代码修改为:
Public Sub toggleView(x As Boolean)
Dim ctl As Control
For Each ctl In Me.Controls
If ctl.Tag = "Toggle" Then
ctl.Visible = x
End If
Next ctl
End Sub
关于,您可以使用这样的:
Option Explicit
Private Sub Command1_Click()
ToggleView False, Command2, Command3, Command4
End Sub
Private Sub ToggleView(x As Boolean, ParamArray buttons() As Variant)
Dim i As Integer
For i = LBound(buttons) To UBound(buttons)
buttons(i).Visible = x
Next
End Sub
您可以循环使用userform控件,并仅对
CommandButton
类型控件进行操作
Public Sub toggleView(x As Boolean)
Dim ctl As Control
For Each ctl In Me.Controls
If TypeName(ctl) = "CommandButton" Then ctl.Visible = x
Next
End Sub