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

标签 arrays vba excel

我正在尝试将范围 (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 

最佳答案

我可以使用以下代码/替代方法实现此目的吗?

enter image description here

你必须循环。即使可以像这样 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/

相关文章:

excel - 如何格式化空excel表中的列?

vba - 自定义排序与自定义排序

vba - 为什么运行相同的 VBA 代码需要不同的时间?

windows - 在 Excel 中打开特定电子表格的 win cmd 是什么?

python - 为什么 (X.shape[0], -1) 在矩阵 X 上使用 reshape 函数时用作参数?

c++ - 多维数组传输问题

arrays - 如何从当前函数VBA Excel获取单元格行

c# - Array.Copy() 不适用于 C# 中的 DataRow

c# - 在 C# 中有效缩小二维数组

vba - 查找下一个仅适用于第一次迭代