Dim wang As New Collection 
Set wang = Nothing 
Set wang = LoadStrings(App.Path & "\Output\li.txt") 
li文本得内容是: 
b 16 
be 3 
bia 2 
c 32 

我想用设置关键字,用来读取b这列和数字得一列,我原先得使用下面得循环取得。想改成用关键字来做,怎么去设置??? 
For Each cc In wang 
If cc <= 6 Then 
cc=cc 
End If 
zz=Left$(eachStr, 6)‘这是取字母得 
xx=Mid$(eachStr, 7) ’这是取数字得 
因为我要把zz和xx放到另外一个for each next 得循环里所以如果再把这个循环放进去就太麻烦了,想用关键字来做。

解决方案 »

  1.   

    说实话,没太明白你的意思...
    集合的add方法中二个参数,一个是值,一个就是key,不过如果你要用key来判断Collection中是否存在某个对象,是不可行的,因为如果key不存在会抛出错误,要另外处理才行...
    你可以用字典,字典使用和集合相似,简单示例:'引用 Microsoft Scripting Runtime
      Dim dic As Dictionary
        Dim i As Long
        
        Set dic = New Dictionary
        For i = 1 To 26
            dic.Add Chr(i + 96), i
        Next
        
      '查找关健字y是否存在
        If dic.Exists("y") Then MsgBox dic.Item("y")
        
        Set dic = Nothing
      

  2.   

      Dim wang As New Collection
        Set wang = Nothing
        Set wang = LoadStrings(App.Path & "\Output\li.txt")
       
        wang.Add Left$(eachStr, 6), m
        wang.Add Mid$(eachStr, 7), n
                    
        nameAddr = 0
                    
        For Each eachStr In mStrings
                   
            If eachStr <= 6 Then
                    eachStr = eachStr
            End If
            
     '拼音
      dishNo = StrConv(Left$(eachStr, 6), vbFromUnicode)
                    
       '汉字
      dishName = Mid$(eachStr, 7)       If dishName = "" And Left$(eachStr, 6) = wang.Item(m) Then  这里wang.item(m)是不是通过设置得关键字m去找相对应得内容啊
            
                    nameAddr = wang.Item(n)  
    wls文本内容:

    ai  爱
    ao  奥
    b
    be
    bou 波
    bai 白li文本得内容:
    a  3
    b  3
    be 0
    程序得意思是当在wls文本里遇到文字为空得那一行时候就去li那个文本找相对应得数字,比如a后面为空那就去li文本找a后面得那个3
    我现在想用集合得关键字做,请高手帮忙看下。
      

  3.   

    wls文件中,是拼音和汉字(空)?