如何使用VBA-Excell检查工作表上每个组合框的名称或特定名称?

时间:2019-06-23 04:25:57

标签: excel vba listbox

我在工作表上有几个组合框,它们的对象名称包含单词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

我无法获得用于标识对象名称的代码。

2 个答案:

答案 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)