我正在尝试将范围(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
答案 0 :(得分:1)
我可以使用以下代码/替代方法实现此目的吗?
你必须循环。即使有可能像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