我正在使用 VBA 代码在 excel 表中插入一个 ActiveX 控件标签。现在插入按钮后,我试图插入点击事件代码,但它不起作用。下面是代码:
Public Function AddButton(strSheetName, counter)
Dim btn As OLEObject
Dim cLeft, cTop, cWidth, cHeight
Dim CodeModule As Object
With Worksheets(strSheetName).Range("J" & (6 + counter))
cLeft = .Left + 1
cTop = .Top + 1
cWidth = .Width - 2
cHeight = .Height - 2
End With
With Worksheets(strSheetName)
Set btn = .OLEObjects.Add(ClassType:="Forms.Label.1", Link:=True, DisplayAsIcon:=True, Left:=cLeft, Top:=cTop, Width:=cWidth, Height:=cHeight)
End With
btn.Object.Caption = "Add New"
btn.Name = Left(strSheetName, 3) & counter
Set CodeModule = ActiveWorkbook.VBProject.VBComponents.VBE.ActiveCodePane.CodeModule
CodeModule.InsertLines CodeModule.CreateEventProc("Click", btn.Name) + 1, vbTab & "MsgBox ""Hello world"""
End Function
按钮正在插入,但单击事件代码不起作用。当我点击什么都没有发生。这个函数也在循环中被调用。第一次添加按钮,然后一旦尝试添加点击事件代码,循环就会终止,这意味着存在错误。
有什么帮助吗?
提前致谢。