item是什么(item的用法和短语)

80酷酷网    80kuku.com

No.1

Item在vba代码中可理解为一个单独项目,一个单元格或一个大类下的子类。

总之就是一个集合里的某一个。

VBA如何返回一个指定的单元格对象,Item属性详细讲解

本节介绍的这个Item属性,是Range对象下的一个属性。

其实在应用这个属性之前,本能地认为它是某一个单元区域内的某一个。

可是在实际应用的时候,完全不是这么回事儿。

从某些方面考虑,基本和这个集合没有多大关系。

这就让我有点迷惑。

它是怎样的一种工作机制呢?

下面具体看一下。

下图为Item属性:

VBA如何返回一个指定的单元格对象,Item属性详细讲解

No.2

Item给出了两个参数,前一个RowIndex代表行号,后一个ColumnIndex代表列号。

仅仅这么理解就不十分严谨了。

因为它不仅仅指行号和列号,后一个参数完全可以省略或不写。

如果不写后一个参数,将返回此列中的第RowIndex单元格对象,基本相当于向下选择。

例:

dim R as Rangeset R=Range("C1:C10").Item(10)msgbox R.address

输出"$C$10",也就说返回C10单元格对象给变量R。

下面代码同样的结果:

dim R as Rangeset R=Range("C1:C10").Item(10,1)msgbox R.address

在同一列的情况下,不用写两个参数。

因为,单独一个参数,它将继续同一列向下指定。

VBA如何返回一个指定的单元格对象,Item属性详细讲解

No.3

上图为例,进行多个单元区域返回。

可以使用Application.Union(Range1,Range2)函数将几个单元格区域整合。

但是Item也并不代表其中的某一个项,这就让我有点不明白了。

唯一认识清楚的是,它的第一参考项是第一个Range1。

也就说,所有的Item参数,以Range1地址为起点。

如:

Set R = Application.Union(s.Range("B2:B3"), s.Range("D2:D3"))

msgbox R.item(1,1).address

返回“B2”单元地址。

Set R = Application.Union(s.Range("E2:E3"), s.Range("D2:D3"))

msgbox R.item(1,1).address

返回"E2"地址。

也就是以第一个区域为基准。

而Item(RowIndex,ColumnIndex)则以1开始为偏移量进行。

RowIndex偏移量1为起始单元,不可为零或负值。

ColumnIndex偏移量可以零或负值,但不能超出最小偏移量。

这个很重要,一定要记住了。

No.4

代码介绍

VBA如何返回一个指定的单元格对象,Item属性详细讲解

Private Sub CommandButton1_Click()Dim ri As Integer, ci As Integerri = Me.ComboBox1.Valueci = Me.ComboBox2.ValueDim R As Range, s As WorksheetSet s = ThisWorkbook.ActiveSheetSet R = Application.Union(s.Range("B2:B3"), s.Range("D2:D3"))With R    MsgBox R.Item(ri, ci).AddressEnd WithEnd Sub

这个Item并不指通常意义上的集合项,而是以Range1为基准,以参数RowIndex和ColumnIndex为偏移量的某一个单元格对象。

所以,对于这个理解一定要分清楚,不应该混淆使用。

欢迎、收藏

---END---

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: