- 帖子
- 2848
- 主題
- 10
- 精華
- 0
- 積分
- 2903
- 點名
- 0
- 作業系統
- 〔略〕
- 軟體版本
- 〔略〕
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 〔略〕
- 註冊時間
- 2013-5-13
- 最後登錄
- 2026-7-25
|
回復 11# dou10801
簡單做一個:
1) 只輸入開始日期:取出>=指定日期資料
2) 只輸入結束日期:取出<=指定日期資料
3) 兩種都有:取出>=及<=區間資料, 注意:兩個日期不可倒錯, 即結束日期不可小于開始日期; 若兩個日期相同=只取同一天資料
4) 兩種都空:不比較日期, 視為日期都符合, 僅比對其它條件
Sub TEST()
Dim Arr, D1, D2, X, i&, j%, N&
Sheets(2).UsedRange.ClearContents
D1 = [j2]: D2 = [k2]: X = [L2:N2]
Arr = Range([i1], [a65536].End(xlUp))
For i = 2 To UBound(Arr)
If IsDate(D1) Then If CDate(Arr(i, 9)) < D1 Then GoTo i01
If IsDate(D2) Then If CDate(Arr(i, 9)) > D2 Then GoTo i01
For j = 1 To 3
If X(1, j) <> "" And X(1, j) <> Arr(i, Mid(135, j, 1)) Then GoTo i01
Next j
N = N + 1
For j = 1 To UBound(Arr, 2): Arr(N + 1, j) = Arr(i, j): Next
i01: Next i
If N > 0 Then Sheets(2).[a1].Resize(N + 1, UBound(Arr, 2)) = Arr
End Sub
'============================ |
|