Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 2010 VBA创建ActiveX列表框提供';对象没有';不支持此属性或方法';_Excel_Vba_Listbox - Fatal编程技术网

Excel 2010 VBA创建ActiveX列表框提供';对象没有';不支持此属性或方法';

Excel 2010 VBA创建ActiveX列表框提供';对象没有';不支持此属性或方法';,excel,vba,listbox,Excel,Vba,Listbox,我试图用这段代码清除所有ActiveX对象,然后创建一个ActiveX列表框。创建列表框会导致“对象不支持此属性或方法” Sub DeleteActiveXObjects() Dim oOBJECT As Shape For Each oOBJECT In Sheets("Search").Shapes If oOBJECT.Type = 12 Then oOBJECT.Delete Next oOBJECT ActiveSheet.Sele

我试图用这段代码清除所有ActiveX对象,然后创建一个ActiveX列表框。创建列表框会导致“对象不支持此属性或方法”

Sub DeleteActiveXObjects()

    Dim oOBJECT As Shape

    For Each oOBJECT In Sheets("Search").Shapes
        If oOBJECT.Type = 12 Then oOBJECT.Delete
    Next oOBJECT

    ActiveSheet.Select

End Sub


Sub CreateListBox()

    Dim oLISTBOX As OLEObject

    Set oLISTBOX = Sheets("Search").OLEObjects.Add(classtype:="Forms.ListBox.1")

    Sheets("Search").ListBox1.Object.IntegralHeight = False
    Sheets("Search").ListBox1.Object.Font.Size = 11
    Sheets("Search").ListBox1.Top = 220.5
    Sheets("Search").ListBox1.Left = 20
    Sheets("Search").ListBox1.Width = 1100
    Sheets("Search").ListBox1.Height = 500.25

End Sub
但是,如果我将代码分成一个子部分来创建ListBox,然后是一个子部分来设置属性,并且如果我手动执行它们,则效果很好。如果我从第三个子系统执行两个分开的子系统,我会得到与上面相同的错误

如果问题与Excel在创建ListBox后尝试设置属性的速度有关,我尝试了应用程序。等待,然后使用睡眠API,每次2秒钟,但这没有帮助


如果您有任何关于如何发现问题的想法,请使用此选项。它确保您正在设置正在创建的列表框的属性:

Sub CreateListBox()

    Dim oLISTBOX As OLEObject

    Set oLISTBOX = Sheets("Sheet6").OLEObjects.Add(classtype:="Forms.ListBox.1")
    With oLISTBOX
        .Object.IntegralHeight = False
        .Object.Font.Size = 11
        .Top = 220.5
        .Left = 20
        .Width = 1100
        .Height = 500.25
    End With
End Sub

您收到的错误消息具体是哪一行?是否尝试在
.Add
语句中为列表框设置尽可能多的属性?我看不出是哪一行导致了错误。我一步一步设置,然后消息“此时无法进入中断模式”,所以要么继续,其余执行,要么结束是我的选择。我没有考虑将属性放在.Add语句中。我会试试的,那很有效。非常感谢。有没有办法解释为什么它不能按照我的编码方式工作?我清除了所有ActiveX控件,创建的列表框肯定是#1,但Excel却不这么认为。