我有這個 TRIM 函式正在運行,但為了節省時間,我只想在前幾天的行上運行它,G 列包含一個日期。
請有人指導我實作這一目標。
sub TrimText()
Dim lRow As Integer
With Worksheets("Data")
lRow = .Range("A2").End(xlDown).Row
For i = 2 To lRow
.Cells(i, "A").Value = Trim(.Cells(i, "A").Value)
Next i
End With
End Sub
uj5u.com熱心網友回復:
如果您的意思是在 G 列中存盤一個日期,并且如果該日期是昨天運行時 - 那么TRIM代碼應該在該行上運行:
For i = 2 To lRow
If .Cells(i, "G").Value = Int(Now()) - 1 Then
.Cells(i, "A").Value = Trim(.Cells(i, "A").Value)
End If
Next i
uj5u.com熱心網友回復:
如果您為了速度/時間而這樣做,那么添加代碼來檢查日期并不是真正的方法。
但是,假設 G 列中的日期是 DD/MM/YYY(或您的系統在Date格式化列中使用的任何順序),這將檢查 G 列中的值并跳過如果日期是昨天(純日期,沒有時間)
Sub TrimText()
Dim lRow As Integer
Dim Yesterday As Date
Dim Test As Date
Yesterday = DateAdd("d", -1, Now)
Test = DateSerial(Year(Yesterday), Month(Yesterday), Day(Yesterday))
With Worksheets("Data")
lRow = .Range("A2").End(xlDown).Row
For i = 2 To lRow
If .Cells(i, "G").Value = Test Then
' date in G is Yesterday
.Cells(i, "A").Value = Trim(.Cells(i, "A").Value)
Else
' date in G is NOT Yesterday
End If
Next i
End With
End Sub
關閉螢屏更新將使原始宏運行得更快,因為宏中最慢的部分是 Excel UI 而不是代碼。
Sub TrimText()
Dim lRow As Integer
Application.ScreenUpdating = False
With Worksheets("Data")
lRow = .Range("A2").End(xlDown).Row
For i = 2 To lRow
.Cells(i, "A").Value = Trim(.Cells(i, "A").Value)
Next i
End With
Application.ScreenUpdating = True
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/504056.html
