Определить список VBA - PullRequest
       10

Определить список VBA

0 голосов
/ 13 января 2020

У меня есть 3 списка, которые называются «List1», «List2» и «List3»

Мои списки располагаются на лицевой стороне электронной таблицы (Worksheet1). (Они не в отдельной форме). Они были созданы из коллекции инструментов ActiveX.

Какой код / ​​имя объекта идентифицирует списки, подобные моим.

Вот что я пробовал:

Установить wrksht = ActiveWorkbook.Worksheets ("Sheet1")

n1 = wrksht.ListObjects.Count

n2 = ActiveSheet.ListBoxes.Count

n3 = ActiveSheet.ListObjects.Count

Когда я выполняю код, n1, n2 и n3 выводятся как 0 (сообщение об ошибке не генерируется), что означает, что VBA «что-то» распознает. Но ожидаемое значение равно 3, поэтому ссылка на объект неверна.

Итак, какой объект следует использовать.

1 Ответ

0 голосов
/ 13 января 2020

Я бы использовал что-то в этом духе, называя это так: countshapes("ListBox")

Function CountShapes(strType As String) As Long

Dim s As Shapes
Dim shp As Shape

Set s = ActiveSheet.Shapes

For Each shp In s

    If shp.Type = msoOLEControlObject Then

        If TypeName(shp.OLEFormat.Object.Object) = strType Then
            CountShapes = CountShapes + 1
        End If

    End If

Next shp

End Function
...