本帖最后由 龙送农 于 2016-7-6 11:28 编辑
VBA调名单: 1、条件1是单元格F2(单位),条件2是男性年龄大于或等于60岁女性年龄大于或等于55岁,从《数据库》调出本表相应名单信息。
2、当条件1是单元格F2(单位)选择显示“全部”时,条件2是男性年龄大于或等于60岁女性年龄大于或等于55岁,从《数据库》调出所有单位本表相应名单信息。
- Sub tj()
- arr = Sheets(1).[a1].CurrentRegion
- dw = [f2] '单位
- dzb = Array(3, 4, 5, 6, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 31, 32, 33, 34, 35, 36, 37, 38, 59)
- For i = 5 To UBound(arr)
- If dw = "全部" Or dw = arr(i, 4) Then
- txnl = IIf(arr(i, 9) = "男", 60, 55) '退休年龄
- If arr(i, 15) >= txnl Then
- n = n + 1: arr(n, 1) = n
- For j = 0 To UBound(dzb)
- arr(n, j + 2) = arr(i, dzb(j))
- Next
- End If
- End If
- Next
- [a5:ag1000] = ""
- If n > 0 Then [a5].Resize(n, UBound(dzb) + 2) = arr
- End Sub
- Private Sub Worksheet_Change(ByVal Target As Range)
- If Target.Address = "$F$2" Then Call tj
- End Sub
复制代码
|