【发布时间】:2023-02-04 01:31:09
【问题描述】:
Set WS = Sheets("Days")
Set WC = Sheets("Runs")
Dim pr As Long
Dim rr As Long
Dim hr As Long
Dim CurrRow As Long
Dim PrevRow As Long
Dim CurrColor As Long
Dim ColorArr As Variant
Dim ColorIndex As Integer
Dim ColorRange As Range
Dim Color0 As Long
Dim Color1 As Long
Dim Color2 As Long
Dim Color3 As Long
Dim Color4 As Long
Dim Color5 As Long
Dim Color6 As Long
Dim Color7 As Long
Dim Color8 As Long
Dim Color9 As Long
Dim Color10 As Long
Dim Color11 As Long
Dim tms As Long
ColorArr = Array(Color0, Color1, Color2, Color3, Color4, Color5, Color6, Color7, Color8, Color9, Color10, Color11)
ColorIndex = 0
Color0 = RGB(33, 139, 130)
Color1 = RGB(154, 217, 219)
Color2 = RGB(229, 219, 217)
Color3 = RGB(152, 212, 187)
Color4 = RGB(235, 150, 170)
Color5 = RGB(106, 76, 147)
pr = WC.Range("A" & Rows.Count).End(xlUp).Row + 13
Debug.Print pr
Dim TabTimes As Range
Set TabTimes = Application.Range("Days!B15:B" & pr)
TabTimes.Select
tms = pr + 3
Debug.Print tms
pr = WC.Range("H" & Rows.Count).End(xlUp).Row
pr = pr + tms - 1
Debug.Print pr
Dim CPTTimes As Range
Set CPTTimes = Application.Range("Days!B" & tms & ":B" & pr)
For Each cel In TabTimes.Cells
If cel.Interior.Color <> RGB(166, 166, 166) Then
cel.Interior.Color = ColorArr(ColorIndex)
ColorIndex = ColorIndex + 1
End If
Next cel
On Error Resume Next
End Sub
下午的人 :) 我目前正在尝试根据预先确定的数组设置某些单元格的颜色。这些单元格在 B 列中,从单元格 B15 开始,For Each 语句循环遍历它们。正如您从代码中看到的那样,我希望不同的时间具有预设颜色(Color1/Color2),因为我有另一个更改 RGB 值的代码,以便使用电子表格的人可以选择自己的配色方案,如果这有意义的话.
忽略我在设置命名范围时的糟糕编码,无论如何我可以让它工作吗?目前它只是将所有单元格内部颜色更改为黑色,并将范围内的最后一个颜色更改为其中一种颜色......我怀疑 For Each 不是处理此问题的最佳方法
有人有主意吗?
【问题讨论】: