识别列表 VBA
Identify List VBA
我有 3 个列表,分别是 'List1'、'List2' 和 'List3'
我的列表位于电子表格 (Worksheet1) 的表面。 (它们不在单独的表格中)。它们是从 ActiveX 工具集合创建的。
什么 code/object 名称标识列表,例如我的。
这是我尝试过的:
Set wrksht = ActiveWorkbook.Worksheets("Sheet1")
n1 =wrksht.ListObjects.Count
n2 = ActiveSheet.ListBoxes.Count
n3 = ActiveSheet.ListObjects.Count
当我单步执行代码时,n1、n2 和 n3 都显示为 0(没有生成错误消息),这意味着 VBA 'recognizes' 某些东西。但是我期望的值是3,所以对象引用是错误的。
那么我应该使用什么对象。
我会按照这些思路使用一些东西,这样调用 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
我有 3 个列表,分别是 'List1'、'List2' 和 'List3'
我的列表位于电子表格 (Worksheet1) 的表面。 (它们不在单独的表格中)。它们是从 ActiveX 工具集合创建的。
什么 code/object 名称标识列表,例如我的。
这是我尝试过的:
Set wrksht = ActiveWorkbook.Worksheets("Sheet1")
n1 =wrksht.ListObjects.Count
n2 = ActiveSheet.ListBoxes.Count
n3 = ActiveSheet.ListObjects.Count
当我单步执行代码时,n1、n2 和 n3 都显示为 0(没有生成错误消息),这意味着 VBA 'recognizes' 某些东西。但是我期望的值是3,所以对象引用是错误的。
那么我应该使用什么对象。
我会按照这些思路使用一些东西,这样调用 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