一个记录条中 在 (01,02,03,04,05,06,07,10,13,15)范围内 3个含有个数保留,其外一律删除。  最好记录条在 listview 里。 怎样做到呢

解决方案 »

  1.   

    循环判断
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 
    http://feiyun0112.cnblogs.com/
      

  2.   

    Option ExplicitPrivate Sub Command1_Click()
        Dim i As Long
        For i = ListView1.ListItems.Count To 1 Step -1
           If Not IsThree(ListView1.ListItems(i).Text, "01,02,03,04") Then
                ListView1.ListItems.Remove (i)
           End If
        Next  
    End SubPrivate Sub Form_Load()
     ListView1.View = lvwReport
     ListView1.ColumnHeaders.Add , , "记录"
     
     ListView1.ListItems.Add , , "01,02,03,15,25,28"
     ListView1.ListItems.Add , , "03,08,10,21,26,29"
     ListView1.ListItems.Add , , "04,07,08,19,22,24"
     ListView1.ListItems.Add , , "05,09,11,23,24,27"
     ListView1.ListItems.Add , , "06,08,09,20,28,29"
     ListView1.ListItems.Add , , "07,09,13,17,21,26"
     ListView1.ListItems.Add , , "02,04,08,13,26,31"
     ListView1.ListItems.Add , , "01,03,04,14,24,30"
     
    End Sub
    Private Function IsThree(ByVal strData As String, FrmFind As String) As Boolean
      Dim Arr() As String
      Dim Count As Long
      Count = 0
      
      Arr = Split(strData, ",")
      Dim i As Long  For i = 0 To UBound(Arr)
         If InStr(1, FrmFind, Arr(i)) <> 0 Then
           Count = Count + 1     End If
      Next
      
      If Count > 2 Then
         IsThree = True
      Else
         IsThree = False
      End If
    End Function
      

  3.   

    Private Sub Command1_Click()
        Dim a() As String
        Dim i As Integer
        Dim j As Integer
        Dim m As Integer
        Dim intN As Integer
        
        a = Split("01,02,03,04,05,06,07,10,13,15", ",")
        
        For i = ListView1.ListItems.Count To 1 Step -1
            intN = 0
            For j = 1 To Len(ListView1.ListItems.Item(i))
                For m = 0 To UBound(a)
                    If Mid(ListView1.ListItems.Item(i), j, 2) = a(m) Then
                        intN = intN + 1
                    End If
                Next m
            Next j
            If intN <> 3 Then
                ListView1.ListItems.Remove (i)
            End If
        Next i
                        
                    
    End SubPrivate Sub Form_Load()
        With ListView1
            .ListItems.Add , , "01,02,03,05,06"
            .ListItems.Add , , "05,06,10,12,15"
            .ListItems.Add , , "02,03,15,20,22"    End With
        
    End Sub