【发布时间】:2014-01-22 20:07:14
【问题描述】:
在 Excel 中,我创建了一个表单。在这个表单上,我创建了 3 个按钮。
我希望能够在运行时移动这些按钮。
我遇到的问题是如何在运行时引用按钮?
【问题讨论】:
在 Excel 中,我创建了一个表单。在这个表单上,我创建了 3 个按钮。
我希望能够在运行时移动这些按钮。
我遇到的问题是如何在运行时引用按钮?
【问题讨论】:
Private Sub CommandButton1_Click()
Me.Controls("CommandButton1").Move 0, 0
End Sub
【讨论】:
我遇到的问题是如何在运行时引用按钮?
这取决于您如何为按钮分配名称。
这是在运行时创建命令按钮并使用另一个按钮移动它的简单方法
Option Explicit
Const CmdName As String = "Click_Me"
Dim ctl_Command As Control
'~~> Create command button on the fly
'~~> and give it a predefined name
Private Sub CommandButton1_Click()
Set ctl_Command = Me.Controls.Add("Forms.CommandButton.1", CmdName, False)
With ctl_Command
.Left = 100
.Top = 100
.Width = 255
.Caption = "Blah Blah"
.Visible = True
End With
End Sub
'~~> Use that name to move the control
Private Sub CommandButton2_Click()
Dim X As Double, Y As Double
X = 5: Y = 5.5
Set ctl_Command = Me.Controls(CmdName)
ctl_Command.Move X, Y
End Sub
如果您要创建多个动态控件,则可以使用变量并递增它来分配名称。请参阅THIS 示例。在该链接中,请参阅该行
Set ctl_Command = Me.Controls.Add("Forms.CommandButton.1", "CmdXYZ" & i, False)
通知"CmdXYZ" & i?
【讨论】: