鼠标悬停创建的对象(vba)

时间:2016-02-05 18:04:26

标签: forms vba excel-vba userform mousemove

好吧,我不是编程方面的专家,所以我一直在研究vba代码,此时我已经将 Label对象'手动'放在< em>表单,通过调用 Me.Controls.Add 函数,设置新的标签配置(自动调整大小,宽度,位置等...),其中< em> Caption 从 ActiveWorkBook 中分配了一个单元格的 Value

好的,直到那个。但是现在我想在这些新创建的标签上使用 MouseMove 效果,但我不能。

还有一件事:这个 Userform ,我们称之为 Userform X ,从第一个 Userform Y 窗口初始化,在此Y用户表格中我点击一个按钮加载并显示 Userform X。

所以 userform X 在初始化时创建所有标签,然后再显示自己。

我认为有一种方法可以'重新加载'eighter'刷新' userform X ,它会理解为创建的标签一直在那里,我能够 MouseMove

以下是代码的这一部分:

    Private Sub UserForm_Initialize()
        On Error Resume Next
        c = 0  'counting for labels name

        'Open source workbook 

        If Not IsWorkBookOpen.IsWorkBookOpen("Book.xlsm") Then
            Application.Workbooks.Open "Book.xlsm", , True
        End If
        Workbooks("Book.xlsm").Sheets(1).Activate
        ActiveSheet.Range("A1").Activate

        'Do the Addlabel 

        Do While ActiveCell.Value <> ""
            If ActiveCell.Value <> "Price" Then
                addLabel
                c = c + 1
            End If
            ActiveCell.Offset(0, 1).Activate
        Loop

        'Close source workbook
        Workbooks("Badges.xlsm").Close False 
    End Sub

Private Sub addLabel()
Dim theLabel As Object

Set theLabel = Me.Controls.Add("Forms.Label.1", "Procedimentos_Label" & c + 1, True)
With theLabel
    .AutoSize = True
    .Caption = ActiveCell.Value
    .Left = 10
    .Width = 100
    .Top = 100 + 20 * c
End With
End Sub

0 个答案:

没有答案