【问】如何修改集合中Varient数组的内容?

VBAHZ 2006-03-24 07:50:35
比如:
Dim mCol As New Collection
mCol.Add Array(0,1)

请问,如何把 mCol(1)(1) 的内容(原来为1)改为 2

我知道把数组改成对象是一种方法,但觉得那它占资源,
出于多种目的考虑,决定还是使用数组,
所以就想问这种情况如何修改?
...全文
239 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
VBAHZ 2006-04-19
  • 打赏
  • 举报
回复
GZ
VBAHZ 2006-03-30
  • 打赏
  • 举报
回复
而且 DICTIONARY 的用法好像和Collection 不一样啊
很多时候只需要简单的加入数据而不必加Key,有时又是混合型的
取值的时候,有时要用Index 有时用 Key ,这些都是Collection的特色啊

据说,Collection里都是Variant型的,而V型除了数值外,其它类型的数据仅仅是存放一个指针而已?
那有没有办法通过修改这个指针的指针,从而达到修改其数据呢?

VBAHZ 2006-03-26
  • 打赏
  • 举报
回复
那就是说,本主题是无解喽?
我原来想知道的只是如何修改Collection的内容

本来用Collection的原因就是简便(默认工程总是引用该库的),
现在还要引用外部库。。。还不如用自己的SuperCollection呢

诶。。。
VBAHZ 2006-03-26
  • 打赏
  • 举报
回复
请问,在哪里?怎么用?

rainstormmaster 2006-03-26
  • 打赏
  • 举报
回复
//请问,在哪里?怎么用?

你引用FSO即可看到
至于用法,词典和Collection类似
northwolves 2006-03-26
  • 打赏
  • 举报
回复
先删后加

建议改用DICTIONARY对象,可读可写
homezj 2006-03-25
  • 打赏
  • 举报
回复
Private Sub MidfCol(ColIndex As Long, ArrayIndex As Long, MidfValue As Variant)
Dim a() As Variant
a = mCol(ColIndex)
mCol.Remove ColIndex
a(ArrayIndex) = MidfValue
If ColIndex > mCol.Count Then
mCol.Add a
Else
mCol.Add a, ColIndex
End If
Debug.Print mCol(ColIndex)(ArrayIndex)
End Sub
VBAHZ 2006-03-25
  • 打赏
  • 举报
回复
另外,上面的定义可能不妥

我觉得 Dim a() As Variant 改成 Dim a As Variant 比较合适
VBAHZ 2006-03-25
  • 打赏
  • 举报
回复
原来加入的时候可能有Key值

而这个Key值是没有记录的

一旦用移除的办法再加入,
那数据集合就可能造成完全的崩溃!

所以,保险的办法只能直接修改数据本身。

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧