Excel VBA-For Each循环遍历命名范围内的OLEObject

时间:2016-03-15 18:43:18

标签: excel vba excel-vba

我正在尝试为每个循环编写最多性能,我可以循环通过适用的复选框并更改其状态。

  1. 以下代码的第一行(已注释掉)可以工作,但循环遍历活动工作表上的所有OLEObject(工作表上大约200),并且每个循环内部的“If”语句将操作限制为只有具有我传递给子的strRangName的组名属性的复选框。

  2. 第二行不起作用,并且是首选方法,即仅循环定义的命名范围中的OLEObject。这将消除每个块中“if”语句的需要。

  3. 如果我预先定义自定义集合,第三行确实有效,但预定义它的过程也循环遍历工作表上的所有OLEObject。所以它没有更快。

  4. 非常感谢有关实施第二个选项的任何想法。

    TIA

                'For Each obj In ActiveSheet.OLEObjects
                For Each obj In Names(strRangeName).RefersToRange '.Range(strRangeName)
                'For Each obj In subSystemCollection
                    If Not obj.Object.GroupName = strRangeName Then
                    Else
                        With obj
                            .Enabled = False
                            .Object.Value = False
                        End With
                    End If
                Next obj
    

0 个答案:

没有答案