gpt4 book ai didi

Excel 2010 VBA 创建 ActiveX ListBox 提供 'Object doesn' t 支持此属性或方法'

转载 作者:行者123 更新时间:2023-12-04 20:15:14 24 4
gpt4 key购买 nike

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

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 的 Sub,然后一个设置属性,如果我手动执行它们,它就可以正常工作。如果我从第三个 Sub 执行两个分离的 Sub,我会得到与上面相同的错误。

如果问题与创建 ListBox 后 Excel 尝试设置属性的速度有关,我尝试了 Application.Wait,然后使用 Sleep 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

关于Excel 2010 VBA 创建 ActiveX ListBox 提供 'Object doesn' t 支持此属性或方法',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28417094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com