六合开奖结果现场直播欢迎诸位!收藏本站注 册登 陆
常用三肖中特马:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 三肖中特马 > 文章页

vba New Collection集合作用

Admin | 2015-3-26 9:14:14 | ReadNums | 5067 | 标签 六合开奖结果现场直播 | 打印本页
     

  首先我们先看Collection是用来做什么的?Collection 对象是项目所组成的有序集合,可以把这个集合作为单元来引用。

  说明:Collection 对象提供了简便方法,直截了当将一组相关的项目视为单一对象来引用。集合中的项目或成员被这样一个事实联系起来:它们都属于这个集合。集合的成员不一定都是同一种数据类型的。

  建立集合的方法与建立其它对象的方法一样。例如:

  Dim X As New Collection

  一旦建立集合之后,就可以用 Add 方法添加成员,用 Remove 方法删除成员。在用 For Each...Next 语句重复整个集合时,可以用 Item 方法从集合返回特定成员。

  Dim s As Collection '定义s变量为集合对象
  Set s = New Collection '初始化集合对象s (否则无法使用)

  Dim s As New Collection '推荐这句代码,直接初始化,可以不用再Set了,这一句等于上面两句。

  范例如下:

  '集合s中添加元素的方法
     For i = 1 To 10
         s.Add i '对于集合s,用Add方法可以加入集合元素
             '当然事实上你可以添加任意内容来代替本例中的i
  Next

  '读取集合中元素的方法  
  For i = 1 To s.Count '可以用Count属性返回集合中元素总个数
         t = s(i) '读取集合s中第i个变量存入临时变量t中
         t = s.Item(i) '正规的代码写法应该是这样子(效果一样,推荐用上一句更简明)
         Debug.Print s(i) '在立即窗口中观察s(i)的值
  Next
  
  '下面是集合s中元素删除的方法
  For i = 1 To s.Count '遍历集合元素
         s.Remove (1) '每次删去第1个……直至全部删除完毕 或直接简写为: s.Remove 1
 '        s.Remove (s.Count) '或者每次删除最后一个,直至全部删除完毕(推荐用上一句,不容易错)
 '        或简写为 s.Remove s.Count     
         Debug.Print s.Count '在立即窗口中观察集合s中剩余元素个数
  Next

  综合应用示例:

  对B1:B20区域进行惟一值提取,放到C列中

  On Error Resume Next
  Dim cell As Range
  Dim onlys As New Collection
  Dim item As Long
  Dim arr
  For Each cell In Range("B1:B20")
    If cell <> "" Then onlys.Add cell.Value, CStr(cell.Text)
  Next
  ReDim arr(1 To onlys.Count)
  For item = 1 To onlys.Count
    arr(item) = onlys(item)
  Next
  Range("c1:c" & onlys.Count) = Application.Transpose(arr)


问题未解决:在线咨询

网友评论

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
有问题请在线咨询。
20xx年x月x日