我想从excel中的表中获取颜色值,在重新组织表时将它们存储为数组,然后将颜色值重新放回到表中。以下代码适用于值和数字格式,但不适用于颜色值。 任何帮助将不胜感激。
Sub Colors()
Dim cArray As Variant
Set Rng = Range("A1: T300")
ReDim cArray(1 To Rng.Rows.Count, 1 To Rng.Columns.Count)
For i = 1 To Rng.Rows.Count
For j = 1 To Rng.Columns.Count
cArray(i, j) = Rng(i, j).ColorValue
Next j
Next i
Call SortTable
Rng.ColorValue = cArray
End Sub
答案 0 :(得分:1)
我不确定.ColorValue
是VBA认可的内容。相反,请使用cArray(i,j) = rng(i,j).Interior.ColorIndex
。
然后,当您想要设置单元格的颜色时,只需执行Cells(1,1).Interior.ColorIndex = [whatever]
。
Here's a非常详细的页面讨论了ColorIndex
和HTML / Hex / RGB等价物/相关事物。
编辑:我以为你想要背景颜色。如果你想要字体颜色,它只是cArray(i,j) = rng(i,j).Font.Color
。