我創建了一個 VBA 代碼,它以藍色顯示今天日期所在的整個列。我現在遇到的問題是我的代碼不會取消過去日期的顏色。這意味著過去日期和今天日期的顏色相同。我只想要一列著色,即今天日期的列。我不希望過去的日期與今天的日期顏色相同。當前代碼如下:
有任何想法嗎?
Private Sub Workbook_Open()
Dim CellToShow As Range
Worksheets("Sheet2").Select
x = Day(Date)
Set CellToShow = Worksheets("Sheet2").Rows(3).Find(What:=x, LookIn:=xlValues) 'my dates are located across row 3
CellToShow.EntireColumn.Interior.Color = RGB(151, 228, 255) 'background colour in the selected cell
If CellToShow Is Nothing Then
MsgBox "No Cell for day " & x & " found.", vbCritical
Else
With CellToShow
.Select
.Show 'Scroll the window to show the cell
End With
End If
End Sub
編輯:
這是問題的影像。如您所見,Excel 確實在包含今天日期的列中添加了顏色。但也已經為昨天的日期著色。我不希望昨天的日期被染色。 https://i.stack.imgur.com/oBf9P.png
uj5u.com熱心網友回復:
使用條件格式 - 將“適用于”設定為整個作業表$1:$1048576,并將公式設定為=A$3=DAY(TODAY()). 如果沒有找到相關日期,vba 所要做的就是訊息框,然后滾動到相關列。
編輯:
這將起作用的原因是因為條件格式公式是為要格式化的范圍中的第一個(左上角)單元格撰寫的(因此對于整個作業表,這個公式是如何應用于單元格 A1 的。公式然后以相同的相對方式應用于范圍內的其他單元格 - 因此使用A$3, 將其$修復為始終參考第 3 行,而 A 則為每個單元格動態更改以著色。這樣,公式適用于整列,因為行參考是固定的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/487664.html
下一篇:在excel中創建系結文本和資料
