返回列表 上一主題 發帖

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

回復 39# samwang
Sam 晚上好,
我想依singo1232001的建議,設定日期區間(有時會用到),
設定區間2021/9/18(含)~2021/9/29(含)
符合條件則刪除<>"美"
    If xR.Offset(, -1) < [AF1] And xR.Offset(, -1) < [AF2] Then GoTo 99
但2021/9/29(含)的設定無效,
刪除的是9/18之後的全部日期
請幫忙看下程式 ~~感謝~~
整列刪除_3個條件_起迄日期.rar (18.34 KB)

TOP

回復 43# 准提部林
准大好,
感謝^^
執行OK

回復 42# samwang
If xR = "美" Then GoTo 99
If xR.Offset(, -1) > [AF1] And xR.Offset(, -1) < [AF2] Then GoTo 99'這行的寫法,會導致執行結果錯誤
我一直測試各種組合,後來改為以下,則結果正確
  1. For Each xR In Range("c3:c" & [c65536].End(3).Row).Rows
  2.     If xR = "美" Then GoTo 99
  3.     If xR.Offset(, -1) < [AF1] Then GoTo 99
  4.     If xR.Offset(, -1) > [AF2] Then GoTo 99
  5.     Set xC = xR
  6.     If xU Is Nothing Then Set xU = xR Else Set xU = Union(xR, xU)
  7. 99: Next
  8. If Not xU Is Nothing Then xU.EntireRow.Delete
複製代碼

TOP

回復 36# samwang

Sam您好,
我將統計改為I欄,又發現類似問題,
上回是最末一列單號空白時,無法統計數量
這次是最末一列,無法統計數量
中區_多年度.rar (87.81 KB)
  1. Sub test()
  2. Dim Arr, Brr, xD, i&, T$, T1$
  3. Arr = Sheets("南區").Range("a3:k" & [中區!a65536].End(3).Row + 1)
  4. ReDim Brr(1 To UBound(Arr), 1 To 1)
  5. Set xD = CreateObject("Scripting.Dictionary")
  6. For i = 1 To UBound(Arr)
  7.     If Not IsDate(Arr(i, 1)) Then GoTo 98
  8.     T = Year(Arr(i, 1)) & "|" & Month(Arr(i, 1)): T1 = Year(Arr(i, 1)) & "|" & Month(Arr(i + 1, 1))
  9.     If xD.Exists(T) Then
  10.         If T <> T1 Then
  11.             xD(Arr(i, 1)) = Val(xD(T)) + Val(Arr(i, 4))
  12.         Else
  13.             xD(T) = Val(xD(T)) + Val(Arr(i, 4))
  14.         End If
  15.     Else
  16.         xD(T) = Val(Arr(i, 4))
  17.     End If
  18. 98: Next
  19. For Each ky In xD.keys
  20.     For i = 1 To UBound(Arr)
  21.         If Not IsDate(Arr(i, 1)) Then GoTo 99
  22.         T = Year(Arr(i, 1)) & "|" & Month(Arr(i, 1)): T1 = Year(Arr(i, 1)) & "|" & Month(Arr(i + 1, 1))
  23.         If T <> T1 Then Brr(i, 1) = xD(Arr(i, 1))
  24. 99: Next
  25. Next
  26. Sheets("南區").[i3].Resize(UBound(Brr)) = Brr
  27. End Sub
複製代碼

TOP

        靜思自在 : 能付出愛心就是福,能消除煩惱就是慧。
返回列表 上一主題