[英]Formatting column in alternating colours, conditional on text in Row 1
我有一個電子表格,我需要根據一周中的哪一天更改格式。 我還希望格式按行交替顏色,以幫助分解。 它應該是這樣的:
我有一些代碼可以將特定范圍的列格式化為交替顏色:
'Colour Sundays alternate light grey / dark grey
For Each cell In Range("AX1:AX" & lastRow)
If cell.Row Mod 2 = 1 Then
cell.Interior.Color = RGB(217, 217, 217)
Else
cell.Interior.Color = RGB(242, 242, 242)
End If
Next cell
但是,這並不是特別靈活,因為我希望能夠在任意數周(最多一年)內運行此報告,並且硬編碼特定單元格范圍將意味着重復相同的代碼 52 次。
我還有以下用於單元格寬度的代碼:
Dim Range1 As Range
Dim Cell1 As Range
Set Range1 = Range("O1:QA1")
For Each Cell1 In Range1
If Cell1 Like "*Mon*" Or Cell1 Like "*Tue*" Then
Cell1.ColumnWidth = 7.86
End If
Next Cell1
For Each Cell1 In Range1
If Cell1 Like "*Wed*" Or Cell1 Like "*Thu*" Then
Cell1.ColumnWidth = 7.86
End If
Next Cell1
For Each Cell1 In Range1
If Cell1 Like "*Fri*" Or Cell1 Like "*Sat*" Then
Cell1.ColumnWidth = 7.86
End If
Next Cell1
我正在使用它來對列寬進行編碼(這也不是很好 - 我無法弄清楚如何讓它計算同一代碼段中的所有工作日,但它有效,所以我很高興離開它)。
有什么方法可以組合此代碼,使其顯示為:如果第 1 行中的單元格包含 Mon、Tue、Wed、Thu、Fri、Sat,請以交替顏色更改列寬和格式? 周日等也一樣。
提前致謝。
請參閱我上面的評論,但您可以將循環縮短為:
Sub x()
Dim Range1 As Range
Dim Cell1 As Range
Set Range1 = Range("O1:QA1")
For Each Cell1 In Range1
Select Case True
Case celll Like "*Sun*"
Cell1.ColumnWidth = 8
Case else
Cell1.ColumnWidth = 7.86
End Select
Next Cell1
End Sub
感謝 Zac 指出更短的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.