|
- Sub Macro1()
- Dim arr, brr, crr, d, i&, j%, k&
- brr = [c5:c7]
- n = UBound(brr): [e:e] = ""
- ReDim d(1 To n)
- ReDim w(1 To n, 1 To 2) '存放条件中相同数据起止值
- For i = 1 To n
- Set d(i) = CreateObject("scripting.dictionary")
- x = Split(brr(i, 1), "=")
- h = Split(x(1)) '等号后部分
- For j = 0 To UBound(h)
- d(i)(h(j)) = ""
- Next
- q = Split(x(0), "-") '等号前部分
- w(i, 1) = Val(q(0)): w(i, 2) = Val(q(1))
- Next
- hh = 5
- For kk = 1 To 2
- r = Cells(Rows.Count, kk).End(xlUp).Row
- arr = Range(Cells(5, kk), Cells(r, kk))
- ReDim crr(1 To UBound(arr), 1 To 1)
- For i = 1 To UBound(arr)
- x = Split(arr(i, 1))
- For k = 1 To n
- s = 0
- For j = 0 To UBound(x)
- If d(k).exists(x(j)) Then s = s + 1
- Next
- If s >= w(k, 1) And s <= w(k, 2) Then crr(i, 1) = crr(i, 1) + 1
- Next
- Next
- m = 0
- For i = 1 To UBound(crr)
- If crr(i, 1) = n Then m = m + 1: crr(m, 1) = arr(i, 1)
- Next
- If m = 1 Then Cells(hh, 5) = crr(1, 1)
- If m > 1 Then Cells(hh, 5).Resize(m) = crr
- hh = Cells(Rows.Count, 5).End(xlUp).Row + 1
- Next
- End Sub
复制代码 |
评分
-
查看全部评分
|