Excel VBA:索引 SpecialCells 集合

Excel VBA:索引 SpecialCells 集合

我注意到,如果将 SpecialCells 方法应用于某个范围,然后对结果集合的元素进行索引,则返回的是原始范围的所有元素,而不是基于 SpecialCells 条件的新范围的所有元素。

Sub test()

    Dim i As Range

    Selection.SpecialCells(xlCellTypeConstants).Select

    For Each i In Selection
        Debug.Print i
    Next

End Sub

例如,如果您基于由一个常量、一个公式和一个常量组成的范围运行上述代码,然后在“立即”窗口中检查选择的元素,您将获得以下值:1、2、3(见下图)。

但是,如果您遍历 Selection,则会返回值 1 和 3,正如预期的那样(再次参见下图)。有人知道为什么每次返回的值都不同吗?

在此处输入图片描述

答案1

在此处输入图片描述

在 B1:B3 中测试集合的情况:

  1. 1,2,3
  2. 1 =2, 3
  3. 1, =a1+a2, 3

    Sub TestofCollection()
      Dim Collection1 As Collection
       Dim n As Integer
        Dim x As Integer
    
       Set Collection1 = New Collection
    
       n = 1
    
      On Error Resume Next
         For Each Cell In Range("B1:B3")
            Collection1.Add n, CStr(Cell.Value)
            n = n + 1
        Next Cell
     On Error GoTo 0
    
     For x = 1 To Collection1.Count
        Range("C" & x).Value = Collection1.Item(x)
     Next x
    
    End Sub
    

相关内容