Excel 如何在程序生成的控件上调用函数?

Excel 如何在程序生成的控件上调用函数?,excel,vba,listbox,Excel,Vba,Listbox,我在一系列单元格中添加了3列列表框,这些单元格是在单击按钮时按程序创建的。列表框有3列,包含大量数据,因此我使用GotFocus()和LostFocus()展开和折叠它们,以便所有项目都可见,但这是针对我手动创建的列表框。如何使生成的列表框具有这种行为 Public Sub CreateListbox() Dim rCell As Range Dim rRng As Range Set rRng = ActiveSheet.Range("AA3:AA45") For E

我在一系列单元格中添加了3列列表框,这些单元格是在单击按钮时按程序创建的。列表框有3列,包含大量数据,因此我使用GotFocus()和LostFocus()展开和折叠它们,以便所有项目都可见,但这是针对我手动创建的列表框。如何使生成的列表框具有这种行为

Public Sub CreateListbox()
 Dim rCell As Range
    Dim rRng As Range
    Set rRng = ActiveSheet.Range("AA3:AA45")
    For Each rCell In rRng.Cells
        Set oLISTBOX = ActiveSheet.OLEObjects.Add(classtype:="Forms.ListBox.1")
With oLISTBOX
        .Object.IntegralHeight = False
        .Object.Font.Size = 11
        .Top = rCell.Top
        .Left = rCell.Left
        .Width = rCell.Width
        .Height = rCell.Height
        .LinkedCell = rCell.Address
        .ListFillRange = "ValSocDeterm."
        .Object.ColumnCount = 3
        .MultiSelect = 1
    End With

    Next rCell
End Sub

通常,您需要创建一个类来处理与列表框关联的事件。请参见此处的答案,例如:谢谢Tim。你给我指出了正确的方向,并发现这更容易理解