为什么我的 collection.add执行多次后collection.count还是等于一?
我定义了一个collection对象,并执行多次.add,但debug.后发现他的.count=1???为什么?

解决方案 »

  1.   

    Option Explicit
    Dim mycoll As New Collection
    Private Sub Command1_Click()
        Dim i As Long
        For i = 1 To 100
            mycoll.Add CStr(i), CStr(2 * i + 1)
            Debug.Print mycoll.Count
        Next
    End Sub正常情况下不会出现你说的问题,除非你每次用add之前都重新定义了对象
      

  2.   

    MyStrs = Split(sMeg, "#")
           Dim m As Integer '用来记数,分解来的信息数
            m = 0
            For Each Strs In MyStrs
               Dim msg As String
                    msg = Strs
                    If msg = "" Then
                    Else
                        msg = Strs 
                         m = m + 1
                              Dim Wsockmsg1 As New WinsockMes
                                    With Wsockmsg1
                                        .setIndex inDex
                                        .setMsg msg
                                    End With
                            End If
                    Debug.Print "there are total" & m & "messages 被分解"
                    Next
                 Debug.Print  OneMessage.Count
    我是这样写的 ,结果 onemessage.count=1
      

  3.   

    刚才的程序少了一句话
     MyStrs = Split(sMeg, "#")
           Dim m As Integer '用来记数,分解来的信息数
            m = 0
            For Each Strs In MyStrs
               Dim msg As String
                    msg = Strs
                    If msg = "" Then
                    Else
                        msg = Strs 
                         m = m + 1
                              Dim Wsockmsg1 As New WinsockMes
                                    With Wsockmsg1
                                        .setIndex inDex
                                        .setMsg msg
                                    End With
                            End If
                       OneMessage.add Wsockmsg1       //没打上去刚才
                    Debug.Print "there are total" & m & "messages 被分解"
                    Next
                 Debug.Print  OneMessage.Count
      

  4.   

    rainstormmaster(rainstormmaster) ( 
    Option Explicit
    Dim mycoll As New Collection
    Private Sub Command1_Click()
        Dim i As Long
        For i = 1 To 100
            mycoll.Add CStr(i), CStr(2 * i + 1)
            Debug.Print mycoll.Count
        Next
    End Sub
    想问一下 collection的key属性怎么用?我不用它可以么
      

  5.   

    collection的key属性是关键字,查询时用,你不用当然可以。:)
      

  6.   

    在问个问题。我想从集合里循环取出集合的值,每取出一个就删除一个,该怎么写?
    我这样写对么?
      Dim mCount As Integer
            mCount = OneMessage.Count
        For i = 1 To mCount     
        Set msg = OneMessage.Item(1)
          msgstr = msg.getMsg //取出我想要的东西
           OneMessage.Remove 1 
        Next