Range.Item 属性 (Excel)
返回一个 Range 对象,它表示指定区域以外的一个区域。
表达式。Item (RowIndex、 ColumnIndex)
expression 一个表示 Range 对象的变量。
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
RowIndex | 必需 | Variant | 如果提供了第二个参数,则返回要返回的单元格的相对行号。 如果未提供第二个参数,则返回要返回的子范围索引。 |
ColumnIndex | 可选 | Variant | 要返回的单元格的相对列号。 |
如果 expression 不是包含单个单元格集合的区域,例如,因为 已通过 Columns 成员获取,则提供第二个参数是非法的,并将导致错误 1004。
Range 的默认成员将带有参数的调用转发到 Item 成员。 因此, someRange(1)
和 someRange(1,1)
分别等效于 someRange.Item(1)
和 someRange.Item(1,1)
。
RowIndex 和 ColumnIndex 参数是区域第一个区域的左上角单元格的相对偏移量,由 Areas 成员返回,即对于区域 Union(someSheet.Range("Z4:AA6"), someSheet.Range("A1:C3"))
,Item(1,1)
将返回地址为 $Z $4 的区域。
ColumnIndex 可以作为数字索引或列地址字符串提供,如 A1 表示法中所示,即"A"
引用数字索引1
和 "AA"
。27
可以使用 Item 属性通过提供适当的参数来引用原始区域之外的单元格,例如Item(3,3)
,将为区域 someSheet.Range("B2:C3")
返回 的单元格。"D4"
仅提供一个参数时返回的范围取决于范围的性质:
对于由 单元格和 Range成员返回 的单个单元格组成的区域, Item 返回单个单元格。 参数 RowIndex 在枚举范围从左到右而不是从上到下的第一个区域时引用索引,因为对于两个二维数组。 如果 RowIndex 大于区域第一个区域中的单元格数,则枚举就像区域向下扩展一样。
对于由行返回的行范围组成的区域,Item 返回行范围。 参数 RowIndex 是从 1 开始的偏移量,从范围的第一行沿从上到下的方向。
对于包含列范围(如 列返回)的区域, Item 返回列范围。 参数 RowIndex 是从 1 开始的从左到右方向的第一列的偏移量。 在这种情况下,索引也可以作为列地址字符串提供。
以下示例显示如果同时提供了这两个参数,将返回哪个单元格。
Public Sub PrintAdresses()
Dim exampleRange As Excel.Range
With ThisWorkbook.Worksheets("ExampleSheet")
Set exampleRange = Application.Union(.Range("B2:D4"), .Range("A1"), .Range("Z1:AA20"))
End With
Debug.Print exampleRange.Item(1,1).Address 'Prints "$B$2"
Debug.Print exampleRange.Item(2,4).Address 'Prints "$E$3"
Debug.Print exampleRange.Item(20,40).Address 'Prints "$AO$21"
Debug.Print exampleRange.Item(2,"D").Address 'Prints "$E$3"
Debug.Print exampleRange.Item(20,"AN").Address 'Prints "$AO$21"
End Sub
以下示例显示,如果只提供一个参数,则返回子范围是不同类型的范围。
Public Sub PrintAdresses()
Dim exampleRange As Excel.Range
With ThisWorkbook.Worksheets("ExampleSheet")
Set exampleRange = Application.Union(.Range("B2:D4"), .Range("A1"), .Range("Z1:AA20"))
End With
Debug.Print exampleRange.Cells.Item(1).Address 'Prints "$B$2"
Debug.Print exampleRange.Cells.Item(2).Address 'Prints "$C$2"
Debug.Print exampleRange.Cells.Item(4).Address 'Prints "$B$3"
Debug.Print exampleRange.Cells.Item(10).Address 'Prints "$B$5"
Debug.Print exampleRange.Rows.Item(1).Address 'Prints "$B$2:$D$2"
Debug.Print exampleRange.Rows.Item(10).Address 'Prints "$B$11:$D$11"
Debug.Print exampleRange.Columns.Item(1).Address 'Prints "$B$2:$B$4"
Debug.Print exampleRange.Columns.Item(10).Address 'Prints "$K$2:$K$4"
Debug.Print exampleRange.Columns.Item("A").Address 'Prints "$B$2:$B$4"
Debug.Print exampleRange.Columns.Item("J").Address 'Prints "$K$2:$K$4"
End Sub
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。