|
发表于 2016-5-13 11:12
|
显示全部楼层
本楼为最佳答案
条件2只要判断>=,要简单很多。- Sub 筛选()
- Dim ok3 As Boolean
- km = [c4] & [d4] '科目
- c = IIf(km = "上学期语文", 4, IIf(km = "上学期数学", 5, IIf(km = "下学期语文", 6, 7)))
- tj1 = [b4]: tj2 = [e4]: tj3 = [f4]
- c1 = IIf(tj3 = "上学期", 8, 9)
- arr = Sheet1.[a1].CurrentRegion
- ReDim brr(1 To UBound(arr), 1 To 3)
- For i = 3 To UBound(arr)
- ok3 = False
- If tj1 = "" Or arr(i, 3) Like "*" & tj1 & "*" Then '条件1满足
- If tj2 = "" Or arr(i, c) >= tj2 Then '条件2满足
- If tj3 = "" Then
- If arr(i, 8) = "三好学生" And arr(i, 9) = "三好学生" Then ok3 = True
- Else
- If arr(i, c1) = "三好学生" Then ok3 = True
- End If
- If ok3 Then
- n = n + 1
- brr(n, 1) = arr(i, 3)
- brr(n, 2) = arr(i, c)
- brr(n, 3) = "三好学生"
- End If
- End If
- End If
- Next
- [b8:d1000] = ""
- If n = 0 Then
- MsgBox "查无此信息"
- Else
- [b8].Resize(n, 3) = brr
- End If
- End Sub
复制代码 |
|