【发布时间】:2015-06-10 18:18:20
【问题描述】:
我试图在当前工作簿中的所有工作表中循环这个宏,它会根据年份更改行的颜色,但似乎不知道该怎么做。我试图从其他问题和答案中拼凑一些东西,但无济于事。任何帮助,将不胜感激。代码如下:
Sub ExpirationYeartoColors()
Dim num As Integer, lr As Long, r As Long
lr = Cells(Rows.Count, "A").End(xlUp).Row
ActiveSheet.Select
For r = 2 To lr
Select Case Range("A" & r).Value
Case Is = "2015"
Range("A" & r).Interior.Color = RGB(181, 189, 0)
Case Is = "2016"
Range("A" & r).Interior.Color = RGB(0, 56, 101)
Case Is = "2017"
Range("A" & r).Interior.Color = RGB(0, 147, 178)
Case Is = "2018"
Range("A" & r).Interior.Color = RGB(155, 211, 221)
Case Is = "2019"
Range("A" & r).Interior.Color = RGB(254, 222, 199)
Case Is = "2020"
Range("A" & r).Interior.Color = RGB(238, 242, 210)
Case "2020" To "2080"
Range("A" & r).Interior.Color = RGB(238, 242, 210)
Case Is = "Unknown"
Range("A" & r).Interior.Color = RGB(197, 200, 203)
Case Is = "Available"
Range("A" & r).Interior.Color = RGB(247, 150, 91)
Case Is = "CommonArea"
Range("A" & r).Interior.Color = RGB(230, 230, 230)
Case Else
Range("A" & r).Interior.Color = RGB(255, 255, 255)
End Select
Next r
On Error GoTo ErrorHandler
' Insert code that might generate an error here
Exit Sub
ErrorHandler:
' Insert code to handle the error here
Resume Next
End Sub
【问题讨论】:
-
A 列中的值实际上是一个 4 位文本值,看起来像一个代表年份的数字,还是可以格式化为显示 yyyy 的日期?你考虑过Conditional Formatting吗?
-
for each worksheet in thisworkbook.sheets将循环遍历工作表 -
@Raystafarian - 听起来您鼓励使用
.Select来转移工作表控制权。 -1. -
@Jeeped 我想可能吧?我没有太在意,我不会使用
select,因为我也不会使用这样的案例。