我正在尝试将范围 (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
中也实现了一个循环,只是您看不到而已。
一般来说,我加载 30 万种颜色需要 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
关于arrays - 如何将范围内每个单元格的颜色索引加载到数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47572738/