【问题标题】:Move a dynamic created control on a form using VBA使用 VBA 在窗体上移动动态创建的控件
【发布时间】:2014-01-22 20:07:14
【问题描述】:

在 Excel 中,我创建了一个表单。在这个表单上,我创建了 3 个按钮。

我希望能够在运行时移动这些按钮。

我遇到的问题是如何在运行时引用按钮?

【问题讨论】:

    标签: excel vba


    【解决方案1】:
    Private Sub CommandButton1_Click()
      Me.Controls("CommandButton1").Move 0, 0
    End Sub
    

    【讨论】:

      【解决方案2】:

      我遇到的问题是如何在运行时引用按钮?

      这取决于您如何为按钮分配名称。

      这是在运行时创建命令按钮并使用另一个按钮移动它的简单方法

      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

      【讨论】:

        猜你喜欢
        • 2013-11-04
        • 2016-08-04
        • 2011-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-14
        • 2014-02-24
        相关资源
        最近更新 更多