Excel VBA ActiveX 列表框不允许点击
Excel VBA ActiveX ListBox not allowing click
我创建了一些代码,用标签、文本框和列表框填充 Excel sheet。使用 .List=Sheets().Range().Value 填充 ListBox 后,我无法单击 select 一个项目。如果我保存 sheet,关闭并重新打开它工作正常。
但我没有收到错误,所以这似乎是错误的解决方法。
当我在知识库中搜索以下内容时
http://support.microsoft.com/kb/3025036/EN-US
症状与我遇到的不同。
我也尝试过使用 Sheets().Activate,如下所示:
Excel ActiveX Listbox not enabled on file open
但这没有帮助,或者我实施不正确。
这是创建列表框的代码
Private Sub Create_ListBox_ActiveXControlProperties()
Dim oLISTBOX As OLEObject
Set oLISTBOX = ActiveSheet.OLEObjects.Add(classtype:="Forms.ListBox.1", Top:=35, Width:=500, Left:=650, Height:=600)
ActiveSheet.OLEObjects("ListBox1").Object.Font.Size = 14
ActiveSheet.OLEObjects("ListBox1").Object.ListStyle = 0
ActiveSheet.OLEObjects("ListBox1").Object.List = Sheets("Search Criteria Control").Range("g1:g21").Value
End Sub
任何人都可以建议我在哪里可以找到解决这个问题的方法吗?
无法给你解释,但如果你在你的 Sub 末尾添加 Activesheet.Select
,那么你可以 select 你的项目。
另一种写法:
Sub M_snb()
With ActiveSheet.OLEObjects.Add("Forms.ListBox.1", , , , , , , 35, 50, 65, 60)
.Object.Font.Size = 14
.Object.List = ActiveSheet.Range("g1:g21").Value
.Object.ListIndex = 0
.Parent.select
End With
End Sub
为了记录所有可能的解决方案,以下是对我有用的方法。
None 所有论坛中提供的解决方法对我有所帮助。
我动态添加了一堆列表框,包括位置、高度、宽度、ListRange 等。当我的代码将在工作表中创建控件时,我无法 select 列表框中的项目。
这就是解决我问题的方法:.OLEObjects().Activate
您需要在创建控件后立即激活它。
同样的问题。作为解决方法(app.activate 对我不起作用并且不希望出现这种行为),您可以将高度加 1,它会轻微地重绘每个对象并重新激活它。
ListBox_Options1.Height = ListBox_Options1.Height + 1
这是一种解决方法,而不是错误的根源。
我创建了一些代码,用标签、文本框和列表框填充 Excel sheet。使用 .List=Sheets().Range().Value 填充 ListBox 后,我无法单击 select 一个项目。如果我保存 sheet,关闭并重新打开它工作正常。
但我没有收到错误,所以这似乎是错误的解决方法。
当我在知识库中搜索以下内容时 http://support.microsoft.com/kb/3025036/EN-US
症状与我遇到的不同。
我也尝试过使用 Sheets().Activate,如下所示: Excel ActiveX Listbox not enabled on file open
但这没有帮助,或者我实施不正确。
这是创建列表框的代码
Private Sub Create_ListBox_ActiveXControlProperties()
Dim oLISTBOX As OLEObject
Set oLISTBOX = ActiveSheet.OLEObjects.Add(classtype:="Forms.ListBox.1", Top:=35, Width:=500, Left:=650, Height:=600)
ActiveSheet.OLEObjects("ListBox1").Object.Font.Size = 14
ActiveSheet.OLEObjects("ListBox1").Object.ListStyle = 0
ActiveSheet.OLEObjects("ListBox1").Object.List = Sheets("Search Criteria Control").Range("g1:g21").Value
End Sub
任何人都可以建议我在哪里可以找到解决这个问题的方法吗?
无法给你解释,但如果你在你的 Sub 末尾添加 Activesheet.Select
,那么你可以 select 你的项目。
另一种写法:
Sub M_snb()
With ActiveSheet.OLEObjects.Add("Forms.ListBox.1", , , , , , , 35, 50, 65, 60)
.Object.Font.Size = 14
.Object.List = ActiveSheet.Range("g1:g21").Value
.Object.ListIndex = 0
.Parent.select
End With
End Sub
为了记录所有可能的解决方案,以下是对我有用的方法。 None 所有论坛中提供的解决方法对我有所帮助。
我动态添加了一堆列表框,包括位置、高度、宽度、ListRange 等。当我的代码将在工作表中创建控件时,我无法 select 列表框中的项目。
这就是解决我问题的方法:.OLEObjects().Activate 您需要在创建控件后立即激活它。
同样的问题。作为解决方法(app.activate 对我不起作用并且不希望出现这种行为),您可以将高度加 1,它会轻微地重绘每个对象并重新激活它。
ListBox_Options1.Height = ListBox_Options1.Height + 1
这是一种解决方法,而不是错误的根源。