好吧,我不是编程方面的专家,所以我一直在研究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