list集合怎么删除元素的元素怎么用临时变量

必须弄清集合的元素是什么.是函数关系中自变量的取值?还是因变量的取值?还是曲线上的点?- ,——精英家教网——
成绩波动大?难提高?听顶级名师视频辅导,
必须弄清集合的元素是什么.是函数关系中自变量的取值?还是因变量的取值?还是曲线上的点?- , 【】
题目列表(包括答案和解析)
精英家教网新版app上线啦!用app只需扫描书本条形码就能找到作业,家长给孩子检查作业更省心,同学们作业对答案更方便,扫描上方二维码立刻安装!查看: 39140|回复: 98
VBA中集合collection方法的基础知识
阅读权限95
在线时间 小时
本帖已被收录到知识树中,索引项:
本帖最后由 香川群子 于
13:09 编辑
刚刚有新手在问 Collection是什么意思?……
于是有了下面的代码介绍:
Sub test()
'& & 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
& &
End Sub复制代码
来学习,谢谢香川老师!
群子出品必属精品
阅读权限70
在线时间 小时
楼主写的注释太详细了,真让人汗颜
阅读权限95
在线时间 小时
& & & & & & & &
跟着群子学集合。能不能来几个适合用集合来解决问题的例子?
阅读权限95
在线时间 小时
集合是什么?
集合是用户定制的一组数据信息,存放于一个一维数组中,以便用户随时访问、增添、删除同类信息。
这个集合的定义,完全是由用户做主,对集合中的数据类型,没有任何限制……
完全取决于用户是否愿意根据某些自己确定的规则把符合要求的信息内容加入集合。
即,集合中元素可以是各种类型的数值、或文本,或单元格区域,或图片……
刚才说集合是一个一维数组,那么为啥不直接让用户自建一个一维数组来存储信息,
而要开发集合对象方法这样一个东东呢?
呵呵,因为集合方法中的一维数组有以下特点,可以简化处理过程,节省用户写代码的时间,也不容易错。
可以进行写入(.Add添加)、读取、删去(.Remove)操作,
其中,.Add添加 时,不需要地址,总是自动添加到集合数组中的最后一个位置。
如果是自定义数组,也可以做到,但可能会是这样子:
Sub test2()
& & Dim arr()
& & For i = 1 To 10
& && &&&ReDim Preserve arr(1 To i) '每次在需要向一维数组中添加新元素时,需要先扩大数组
& && &&&arr(i) = i '然后再添加新元素
呵呵,虽然实际上集合方法中也是这么做的,但毕竟通过封装和后台运行,减少了用户的麻烦。
阅读权限95
在线时间 小时
学习,继续举例子...
阅读权限50
在线时间 小时
学习,学习。
谢谢群子的分享。
阅读权限95
在线时间 小时
接下来,读取集合中元素时,需要指定位置
……这个和普通数组并无差异(只有字典可以直接用关键词key定位置)
方法是: t = s(i)
或者正规一些的写法是:&&t = s.Item(i)
然后,【比普通数组强】的地方终于出现了!
那就是: 直接删去/抹去已经不需要的某个特定位置的信息!
方法是Remove:
s.Remove (i)
删去一维数组中第 i 个信息,同时自动把数组大小缩减
对应的普通数组做法就会比较复杂:
Sub test3()
& & ReDim arr(1 To 10)
& & For i = 1 To 10
& && &&&arr(i) = i
& & Rmv arr, 3
Sub Rmv(arr, j)
& & For i = j + 1 To UBound(arr)
& && &&&arr(i - 1) = arr(i)
& & ReDim Preserve arr(1 To UBound(arr) - 1)
呵呵,也许集合方法中也是这么做的……但毕竟封装、后台运行以后,用户就省心多了。
s.Remove (1)
s.Remove (s.Count)
数组删除元素可用filter
阅读权限95
在线时间 小时
能不能删除任意位置的元素?
如果在Add集合元素的同时加入唯一的key值,以后就可以根据key值进行检索、删除了。详细见20楼代码例子。&
阅读权限20
在线时间 小时
学习了,的确挺有意思,不过只能处理一维数组,还是有点不太够用........
实际工作中大概多数用来进行辅助判断吧,例如遍历关键词之类的。
阅读权限95
在线时间 小时
& & & & & & & &
接下来,关于删除集合中需要元素的方法,
和字典方法比有个缺点。
字典方法有RemoveAll方法可以一下子全部删去,
而集合中只能一个一个来:
每次删去第一个的方法,
For i = 1 To s.Count
& & s.Remove (1)
或者每次删去最后一个的方法:
For i = 1 To s.Count
& & s.Remove (s.Count)
显然第一种方法,每次删去第一的做法更不容易错,也更简单
………………
不过说到最后,一次性删去全部信息还是有绝招的……
Set s = Nothing
这样就彻底清空了。呵呵。
还有一个做法就是:
Set s = New Collection
这样也可以的。
删去全部集合元素的方法有三种。
1. 重新初始化集合s
& & Set s = New Collection
& & 处理结果,s为一个已经初始化了的没有任何元素的空集合变量
2. 变量s初始化
& &Set s = Nothing
& & 处理结果,s为一个变量类型为集合对象的空集合变量
& &其实1和2的执行效果是一样的,只是过程不一样。
3. 遍历集合逐个删除(每次删第1个,或删最后1个)
1,2是最快的选择.而方法三中,每次删除第一个也比较快,而每次删除最后一个速度太慢,10万个元素都能使电脑假死.如果确定要删除所有元素的话,最好的选择是摧毁这个集合.&
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师}

我要回帖

更多关于 临时环境变量 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信