【发布时间】:2020-02-12 14:46:11
【问题描述】:
我需要一些帮助, 我需要我的宏来为范围内的每个单元格着色,但每个单元格的颜色必须与上面的单元格不同。我当前使用的代码没有执行这种区分。代码是:
Function intRndColor()
'USE - FUNCTION TO PICK RANDOM COLOR, ALSO ALLOWS EXCLUSION OF COLORS YOU DON'T LIKE
Dim Again As Label
Dim RangeX As Range
Set RangeX = Range(Range("A1"), Range("A1").End(xlDown))
Again:
intRndColor = Int((50 * Rnd) + 1) 'GENERATE RANDOM IN
Select Case intRndColor
Case Is = 0, 1, 5, 9, 3, 13, 29, 30, 11, 21, 25, 29, 30, 32, 49, 51, 52, 55, 56 'COLORS YOU DON'T WANT
GoTo Again
Case Is = pubPrevColor
GoTo Again
End Select
pubPrevColor = intRndColor 'ASSIGN CURRENT COLOR TO PREV COLOR
' Range(Range("A1"), Range("A1").End(xlDown)).Interior.ColorIndex = pubPrevColor
For Each c In RangeX
c.Interior.ColorIndex = pubPrevColor
Next c
End Function
这段代码使整个范围都是相同的颜色,我不明白我在这里缺少什么......
【问题讨论】:
-
看看你的最终循环:
For Each c In RangeXc.Interior.ColorIndex = pubPrevColorNext c...pubPrevColor永远不会改变。 -
@BigBen
.Color使用RGB,.ColorIndex使用托盘。
标签: excel vba text-coloring