如何将一个范围内的每个单元格的颜色索引加载到数组中?

我正在尝试将范围(A1:A30)转储到数组中。 当我提取范围的单元格值时,它工作正常。

aM = Sheet2.Range("A1:A30").Value 

但是,我需要在该范围内的每个单元格的颜色索引。我知道,我可以通过循环遍历该范围中的每个单元格来完成此操作。 为了提高效率,我不想使用循环选项。

我可以通过使用下面的代码/替代方法来实现这一点吗?

 Dim aM() As Variant aM = Sheet2.Range("A1:A30").Interior.ColorIndex For i = LBound(aM) To UBound(aM) Debug.Print aM(i, 1) Next i 

我可以通过使用下面的代码/替代方法来实现这一点吗?

在这里输入图像说明

你必须循环。 即使有可能像这样am = Range.Interior.ColorIndex会有一个隐藏的循环后面实现。 在aM = Sheet2.Range("A1:A30").Value也有一个循环实现,你只是没有看到它。

一般来说,加载300K色需要2秒钟,

 Public Sub TestMe() Dim i As Long Dim aM(300000) As Long For i = LBound(aM) To UBound(aM) aM(i) = Cells(i + 1, 1).Interior.ColorIndex Next i End Sub