我在工作表上有几个组合框,它们的对象名称包含单词Product。我想选择每个组合框以更新列表项。
我设法识别了组合框,但是我似乎无法确切地识别名称。
dim CBO as oleboject
set ws = sheets(1)
with sheets(1)
for each cbo in ws.oleobjects
if typename(cbo.object) = "ComboBox" then
THE CHECK HERE FAILS
end if
next cbo
end with
我无法获得用于标识对象名称的代码。
答案 0 :(得分:0)
所以我认为您需要事先检查以确保typename属性存在:
Sub ComboLoop()
Dim Ws As Worksheet
Dim OleObj As OLEObject
For Each Ws In ThisWorkbook.Worksheets
For Each OleObj In Ws.OLEObjects
If OleObj.OLEType = xlOLEControl Then
If TypeName(OleObj.Object) = "ComboBox" Then
With OleObj.Object
'SOME ACTIONS
End With
End If
End If
Next OleObj
Next Ws
End Sub
我过去曾经使用过此代码,它对我有用,希望对您有所帮助。
答案 1 :(得分:0)
您快到了。而不是使用
CBO.List = array(item1,item2)
,
您需要使用
CBO.Object.List = array(item1,item2)