Как проверить имя каждого выпадающего списка на рабочем листе для определенного имени с помощью VBA-Excell? - PullRequest
0 голосов
/ 23 июня 2019

У меня есть несколько комбинированных списков на листе, имена объектов которых содержат слово 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 голосов
/ 24 июня 2019

Вы почти у цели. Вместо использования

CBO.List = array(item1,item2) * * 1004

вам нужно использовать

CBO.Object.List = array(item1,item2)

0 голосов
/ 23 июня 2019

Так что я думаю, что вам нужно сделать предварительную проверку, чтобы убедиться, что свойство 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

Я использовал этот код в прошлом, и он работал для меня, поэтому надеюсь, что он поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...