返回列表 上一主題 發帖

[發問] 指定日期計算結餘數

做個較完整+防呆的方法:
Sub 刪除列()
Dim D(2) As Date, K%, MS$, xR As Range, xU As Range, N&
If IsDate([AF1]) Then D(1) = [AF1]: K = 1
If IsDate([AF2]) Then D(2) = [AF2]: K = K + 2
If K = 0 Then MsgBox "※未指定刪除日期! ": Exit Sub
If K = 1 Then D(2) = D(1): MS = D(1) & " 之後的資料"
If K = 2 Then D(1) = D(2): MS = D(2) & " 之前的資料"
If K = 3 Then
   If D(2) < D(1) Then D(0) = D(1): D(1) = D(2): D(2) = D(0)
   MS = D(1) & " 至 " & D(2) & " 之間的資料"
   If D(1) = D(2) Then MS = D(1) & " 當天的資料"
End If
If MsgBox("※確定要刪除 " & MS & "?  ", 1 + 32 + 256) = vbCancel Then Exit Sub
'---------------------------------------------
For Each xR In Range([c3], [c65536].End(3))
    If xR = "美" Or IsDate(xR(1, 0)) = False Then GoTo 99
    D(0) = xR(1, 0)
    If D(0) < D(1) Or D(0) > D(2) Then GoTo 99
    N = N + 1
    If N = 1 Then Set xU = xR Else Set xU = Union(xR, xU)
99: Next
If N = 0 Then MsgBox "※執行完畢! 找不到符合的資料!  ": Exit Sub
xU.Select
If MsgBox("※執行完畢! 共找到 " & N & " 筆符合資料,是否要刪除?  ", 4 + 32 + 256) = vbYes Then xU.EntireRow.Delete
End Sub

附件:
刪除列_3個條件_起迄日期-v1.rar (21.29 KB)


'==================================

TOP

        靜思自在 : 唯其尊重自己的人,才更勇於縮小自己。
返回列表 上一主題