![](/img/trans.png)
[英]Is there a way to prepend text to cell with specific formatting using Excel VBA?
[英]VBA Excel Cell formatting on specific days on open
我想讓一個單元格范圍(a9:e13)字體顏色如果一天是星期一更改為黑色,如果是其他任何一天則更改為白色。 我希望在打開文件時執行此操作。
到目前為止,我有
Private Sub Workbook_open()
If Cell(S2).Value = True Then
Range("a9:e13").Font.Color = vbWhite
Else
Range("a9:e13").Font.Color = vbBlack
End If
End Sub
在單元格S1中,我有= = Today()
在單元格S2中,我==平日(S1)= 2
這根本沒有用,有人可以幫我理解我的錯誤嗎?
工作守則
Private Sub Workbook_open()
If Sheet1.Cells(2, "S") = True Then
Sheet1.Range("a9:e13").Font.Color = vbBlack
Else
Sheet1.Range("a9:e13").Font.Color = vbWhite
End If
End Sub
我認為最簡單的解決方案不是使用VBA,而是使用條件格式。 例如,請參閱http://office.microsoft.com/zh-cn/excel-help/use-a-formula-to-apply-conditional-formatting-HA102809768.aspx
此外,您的代碼示例似乎有一些錯誤,應該看起來像這樣嗎? 其中Sheet1
必須替換為工作表名稱。
If Sheet1.Cells(2, "S") = True Then
Sheet1.Range("a9:e13").Font.Color = vbWhite
Else
Sheet1.Range("a9:e13").Font.Color = vbBlack
End If
我將使用以下公式進行條件格式設置:
=WEEKDAY(TODAY())=2
另一種選擇是
Private Sub Workbook_open()
With Worksheets("Your_sheet_name")
If Weekday(Now) = vbMonday Then
.Range("a9:e13").Font.Color = vbWhite
Else
.Range("a9:e13").Font.Color = vbBlack
End If
End with
End Sub
編輯:@ hnk-是的,謝謝提出。 我的想法是,由於這是工作簿打開時進行任何更改的原始要求的一部分,並且假設理解了所涉及的含義,所以我認為假設您指出的情況不太可能發生是合理的。 但我可能會更好地強調這一點
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.