今天我花了很长时间查找一种在指定范围内交替行颜色的方法.那里真的不是很多,说实话,我发现看起来过于复杂.所以,我决定停止表现得像一个无耻的'script-kiddy'并将下面的样本放在一起:
Sub AlternateRowColors()
Dim lastRow as Long
lastRow = Range("A1").End(xlDown).Row
For Each Cell In Range("A1:A" & lastRow) ''change range accordingly
If Cell.Row Mod 2 = 1 Then ''highlights row 2,4,6 etc|= 0 highlights 1,3,5
Cell.Interior.ColorIndex = 15 ''color to preference
Else
Cell.Interior.ColorIndex = xlNone ''color to preference or remove
End If
Next Cell
End Sub
Run Code Online (Sandbox Code Playgroud)
现在我知道这有效,但我想知道是否有更简单的方法?
如果是这样,请告诉我,因为我非常渴望学习简化,因为我现在倾向于编写详细的代码.如果没有,那么这个条目是否可以找到谷歌第1页的搜索条件,因为我花了很长时间才找到任何有用的东西.
留给脚本小子的好处的评论.
如果您的数据不包含任何预先存在的颜色,则可能会删除以下代码行:
Else
Cell.Interior.ColorIndex = xlNone
Run Code Online (Sandbox Code Playgroud)
我需要经常这样做,并希望能够轻松修改我用于条带的颜色.以下子目录非常简单:
Sub GreenBarMe(rng As Range, firstColor As Long, secondColor As Long)
rng.Interior.ColorIndex = xlNone
rng.FormatConditions.Add Type:=xlExpression, Formula1:="=MOD(ROW(),2)=0"
rng.FormatConditions(1).Interior.Color = firstColor
rng.FormatConditions.Add Type:=xlExpression, Formula1:="=MOD(ROW(),2)<>0"
rng.FormatConditions(2).Interior.Color = secondColor
End Sub
Run Code Online (Sandbox Code Playgroud)
用法:
Sub TestGreenBarFormatting()
Dim rng As Range
Dim firstColor As Long
Dim secondColor As Long
Set rng = Range("A1:D12")
firstColor = vbGreen
secondColor = vbYellow
Call GreenBarMe(rng, firstColor, secondColor)
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43359 次 |
| 最近记录: |