Excel VBA-For Each通过命名范围中的OLEObjects进行循环

我试图写每个循环的最perfomant我可以循环通过适用checkbox,并更改其状态。

  1. 下面的代码(注释掉)的第一行工作,但循环通过活动工作表上的所有OLEObjects(工作表上大约200),每个循环内部的“If”语句将操作限制为只有checkboxstrRangName的组名称属性,我传递给子。

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

  3. 如果我预先定义了自定义集合,但是预定义它的过程也循环遍历工作表中的所有OLEObjects,第三行就行。 所以它不会更快。

任何想法实施第二个选项将不胜感激。

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