- 帖子
- 976
- 主題
- 7
- 精華
- 0
- 積分
- 1018
- 點名
- 0
- 作業系統
- Win10
- 軟體版本
- Office 2016
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2013-4-19
- 最後登錄
- 2025-1-10
|
3#
發表於 2021-12-28 07:48
| 只看該作者
回復 1# cclo0728
請測試看看,謝謝
Sub test()
Dim Arr, SD As Date, y2, m2, d2, i&, j%, n%
Application.ScreenUpdating = False
Tm = Timer
With Range("a1").CurrentRegion
Arr = .Value
For i = 2 To UBound(Arr)
y2 = Format(Left(Arr(i, 11), 4), "0000")
m2 = Format(Mid(Arr(i, 11), 5, 2), "00")
d2 = Format(Mid(Arr(i, 11), 7, 2), "00")
SD = DateSerial(y2, m2, d2)
If SD < Date Then
n = n + 1
For j = 1 To UBound(Arr, 2): Arr(n, j) = Arr(i, j): Next
End If
Next
If n > 0 Then
.Range("a1").CurrentRegion.Offset(1) = ""
.Range("a2").Resize(n, UBound(Arr, 2)) = Arr
End If
End With
Application.ScreenUpdating = True
MsgBox Timer - Tm
End Sub |
|