如何使用VBA在一定范围内设置背景色?

时间:2018-10-26 15:28:19

标签: excel vba excel-vba

这是我正在尝试的代码。但是它显示类型不匹配错误。 我不想使用for循环为单个单元格设置颜色。

Function bgColor()
    Dim MyArray(1, 3) As Variant
    MyArray(0, 0) = 37
    MyArray(0, 1) = 12
    MyArray(0, 2) = 15
    MyArray(0, 3) = 18
    Sheets("Data").Range("A1:D1").Interior.ColorIndex = MyArray
End Function

enter image description here

1 个答案:

答案 0 :(得分:3)

遍历5000种颜色的数组并将它们写入单元格所需的时间远远少于一秒钟,即使启用了屏幕更新也是如此。您还有其他原因无法使用For循环吗?

Sub Test()

    Dim MyArray(0, 4999) As Variant
    Dim i As Long

    For i = 0 To 4999
        MyArray(0, i) = WorksheetFunction.RandBetween(1, 40)
    Next i

    For i = 0 To 4999
        Sheets("Data").Cells(i + 1, 1).Interior.ColorIndex = MyArray(0, i)
    Next i

End Sub