Excel 为什么范围(x)选择的单元格不应';你不在我的范围内吗?

Excel 为什么范围(x)选择的单元格不应';你不在我的范围内吗?,excel,vba,Excel,Vba,我是VBA新手,在理解范围如何工作时遇到了一些困难 在上面,我试图学习如何使用循环选择包含特定值的单元格,然后将所有选择的单元格存储在范围对象中。当我debug.print MyRange.Address时,我得到了一个单元格的打印输出,其中包含了所搜索的值,正如预期的那样。但是,当我试图通过键入例如“MyRange(2).Address”一次遍历一个单元格来遍历MyRange时,我会得到不包含我正在搜索的值的意外单元格 这是怎么回事?我以为MyRange是一个单元格对象列表,其中包含我搜索的值

我是VBA新手,在理解范围如何工作时遇到了一些困难

在上面,我试图学习如何使用循环选择包含特定值的单元格,然后将所有选择的单元格存储在范围对象中。当我debug.print MyRange.Address时,我得到了一个单元格的打印输出,其中包含了所搜索的值,正如预期的那样。但是,当我试图通过键入例如“MyRange(2).Address”一次遍历一个单元格来遍历MyRange时,我会得到不包含我正在搜索的值的意外单元格

这是怎么回事?我以为MyRange是一个单元格对象列表,其中包含我搜索的值,但它似乎包含的不止这些

Sub FindValues2()

Dim MyRange As Range
Dim Cell As Object

 'Check every cell in the range for matching criteria.
For Each Cell In Range("A1:B11")
    If Cell.Value = "a" Then
        If MyRange Is Nothing Then
            Set MyRange = Range(Cell.Address)
        Else
            Set MyRange = Union(MyRange, Range(Cell.Address))
        End If
    End If
Next
 'Select the new range of only matching criteria
Debug.Print MyRange.Address(1)


End Sub

改用“Debug.Print MyRange.Areas(2).Address”。谢谢你@BigBen

你想使用
Range.area
。另外-请将你的代码也作为文本发布,而不仅仅是屏幕截图。
Range(cell.Address)
->更简单地说是
cell
。无论你在哪里
Range(cell.Address)
,用
cell
@BruceWayne替换它,
.Cells
都是多余的。