目的:从80或100个手机号码中挑选出像“3344”“4747”“777”这样的号码。
      abab,aabb,aaa。到底是把11位手机号定义成字符串比较简单?还是把11位数定义成数组比较简单呢?希望各位大大给写个完整的挑选函数出来参看一下。先谢谢了^_^

解决方案 »

  1.   

    '测文件
    '13751884586
    '13922541252
    '13844332952
    '13511125482
    '13152541212
    '13545121234
    '13525443325Private Sub Command1_Click()
    '4433 111 1212
    Call Find(4433, 111, 1212)
    End SubPrivate Sub Find(abab As Integer, aabb As Integer, aaa As Integer)
     Dim arr() As String, sFile As String, i As Long
     Dim Result As String
     
     Open "c:\1.txt" For Binary As #1 '你的手机号文件
      sFile = Space(LOF(1))
      Get #1, , sFile
      Close #1
      
      arr = Split(sFile, vbCrLf)
      For i = 0 To UBound(arr) - 1  '如果txt文件最后一行没有空格时去掉-1
       If InStr(arr(i), abab) > 0 Or InStr(arr(i), aabb) > 0 Or InStr(arr(i), aaa) Then
        Result = Result & arr(i) & vbCrLf
       End If
      Next i
      'Debug.Print Result
      MsgBox Result
    End Sub
      

  2.   

    先谢谢4楼的代码,写的不错,但
    如果用这个函数挑选所有符合abab的号码,
    岂不是参数要带上一大筐如下:
    Call Find(0011, 0022, 0033-->0099,0101,0202-->0909,2121,2323-->2929…………………………………………………………………………)
    那样代码也太长了吧。我的思路:
    写个函数,
    把11位数字先存到一个数组里面,
    然后先4位数字比较,如果有3位相同调出来,
    然后挑前两位相同和后两位相同的,
    然后挑隔1位相同的,如果符合上面的一个筛选条件函数返回真
      

  3.   


    Public Function iStr(ByVal s As String)
    Dim i As Integer
    Dim a1, a2, a3, a4, s1 As Integer
    For i = 1 To Len(s) - 2
    s1 = Mid(s, i, 3)
    a1 = Mid(s1, 1, 1)
    a2 = Mid(s1, 2, 1)
    a3 = Mid(s1, 3, 1)
    If a1 = a2 And a3 = a2 Then
    Debug.Print s1
    End If
    Next
    For i = 1 To Len(s) - 3
    s1 = Mid(s, i, 4)
    a1 = Mid(s1, 1, 1)
    a2 = Mid(s1, 2, 1)
    a3 = Mid(s1, 3, 1)
    a4 = Mid(s1, 4, 1)
    If a1 = a2 And a3 = a4 Then
    Debug.Print s1
    End If
    Next
    For i = 1 To Len(s) - 3
    s1 = Mid(s, i, 4)
    a1 = Mid(s1, 1, 2)
    a2 = Mid(s1, 3, 2)
    If a1 = a2 Then
    Debug.Print s1
    End If
    Next
    End FunctionPrivate Sub Form_Load()
    iStr "13134433555"End Sub
      

  4.   

    六楼的SYSSZ老大写的代码好正典啊!
    给个花O(∩_∩)O哈哈~学习一下循环和字符串截取,好好学习天天向上