每週我都會得到新的數據,並從另一張表格的「n/a」列過濾並獲取其餘列並將它們添加到我現有的同一工作簿我需要給日期小於明天日期的行着色,所以今天或之前。新的數據範圍每週都有所不同,我只想塗上新的數據。我使用D列檢查日期,C列中也有日期,所以我不知道這是否會使任務複雜化。vba - 根據日期對整行進行着色
我知道這可以使用條件格式來實現,但我想使用vba代碼來自動化該過程。
我的代碼不起作用,因爲它不能確定我的新數據在哪裏開始,並且只有在列D符合條件時才顯示整行。請看我的代碼和我的願望結果。
Sub paste_value()
Dim ws1, ws2 As Worksheet
Dim lr1, lr2 As Long
Dim rCell As Range
'filter
Set ws1 = Worksheets("All Renewals_V2")
Set ws2 = Worksheets("Renewal policies")
lr1 = ws1.Cells(Rows.Count, "B").End(xlUp).Row
lr2 = ws2.Cells(Rows.Count, "A").End(xlUp).Row
'copy range from column B to column R
With ws1.Range("B2", "R" & lr1)
.AutoFilter Field:=1, Criteria1:="#N/A"
'paste result from column A
.Copy Destination:=Cells(lr2, "A")
End With
For Each rCell In .Range("D5", .Cells(.Rows.Count, 4).End(xlUp)).Cells
If rCell.Value <= Date + 1 Then
rCell.Interior.color = vbYellow
End If
Next rCell
End Sub
'有條件Formatting'會自動,如果你的過程在1000行上應用格式化規則。然後,隨着每行填充,格式將適用。如果沒有數據,格式將不會顯示。對我來說,經驗法則是在Excel中做什麼,只有在需要時才使用VBA。這就是說,如果你真的想要VBA代碼,將'rCell.Interior'改爲'rCell.Offset(, - 3).Resize(1,4).Interior' –
嗨,我正在修改結果,因爲我剛更新新的信息,我想知道如果代碼將工作相同。 D5的值如何,因爲代碼沒有檢測到新數據的第一行是否意味着我需要每週手動更新它?所以下週,這是否意味着我需要改變爲D7?有沒有辦法繞過它,所以我不必手動做呢? – sc1324