请问怎样判断一个Collection类型的集合中有没有KEY为“ABC”的元素呢?在线等待

YongSoft123 2004-12-26 03:40:03
请大家明示!
...全文
382 点赞 收藏 11
写回复
11 条回复
hongbo163 2004年12月27日
用错误处理就可以拉
回复 点赞
tiaoci 2004年12月27日
Sorry 上面

ExistKey = (Err.Number == 0)

应当是

ExistKey = (Err.Number = 0)

C#写多了,唉~~~

添加删除集合不是很好,
回复 点赞
tiaoci 2004年12月27日
要这个样子DI~~~~~~

Public Function ExistKey(ByRef c As Collection, _
ByVal k As Variant) As Boolean
On Error Resume Next
Call VarType(c(k))
ExistKey = (Err.Number == 0)
If Err.Number <> 0 Then Err.Clear
End Function
回复 点赞
flyingZFX 2004年12月26日
呵呵,不好意思,修改一下,这个函数。

Public Function ExistKey(myColl As Collection , strKey As string ) as Boolean
On Error Goto err1
myColl.Add "a",strKey
myColl.Remove strKey
ExistKey = False
Exit Function
err1:
Err.Clear
ExistKey = True
End Function
回复 点赞
flyingZFX 2004年12月26日
我想,该如何调用这个函数,你应该会了吧。
回复 点赞
flyingZFX 2004年12月26日

再或者,你可以编写一个错误处理函数,这样就可以了,很简单的。

Public Function ExistKey(myColl As Collection , strKey As string ) as Boolean
On Error Goto err1
myColl.Add "a",strKey
ExistKey = False
Exit Function
err1:
Err.Clear
ExistKey = True
End Function
回复 点赞
flyingZFX 2004年12月26日
用集合来判断是不太好的。

这种情况,需要来判断Key值的,应该采用字典对象(Dictionary)

回复 点赞
avalonBBS 2004年12月26日
既然来了,就顶下:(
回复 点赞
xiaoya371 2004年12月26日
up
回复 点赞
microfans 2004年12月26日
up
回复 点赞
DragonBill 2004年12月26日
Private Sub Form_Load()
Dim myCollection As Collection
Set myCollection = New Collection

Dim c As Class1 ‘in Class1 add: Public key As String & Public someValue As String
Dim i As Integer

For i = 1 To 5
Set c = New Class1
c.key = "ABC" & i
c.someValue = "Value" & i
myCollection.Add c, c.key
Next i

For Each c In myCollection
If "ABC3" = UCase(c.key) Then
MsgBox " YongSoft123 SB"
Exit For
End If
Next c
End Sub
回复 点赞
发动态
发帖子
VB基础类
创建于2007-09-28

2748

社区成员

19.7w+

社区内容

VB 基础类
社区公告
暂无公告