下面的屏幕快照显示,填写的日期用不同的颜色突出显示,我需要添加更多内容来标记安装过程中的不同问题。
我必须计算生产率并在计算中考虑安装问题。我确定问题的唯一方法是分配不同的填充颜色/字体颜色。
如果我在变量数组中传递此范围的数据,我将能够引用字体/填充颜色属性,还是可以通过间接方式引用数组中的单元格地址? / p>
答案 0 :(得分:0)
我同意@chris neilsen,但是...我只是意识到,您可以实现Array
第三维,它可以容纳例如color属性。
我检查了。即使是少量数据,也比标准方法要快!
让我们在示例代码上显示它:第一行(工作表结构)是标题,在第一列中,我们获得了产品ID。
因此,首先我们需要声明并构建具有单元格值和颜色属性的Array
(称为zakres
)。
Sub main1()
Dim lastRow As Long
Dim lastCol As Long
Dim ws As Worksheet
Dim comper As Range
Dim j1 As Long
Dim i As Long
Dim zakres As Variant 'our 3 dimension Array
Set ws = Sheet1 'set your worksheet
With ws
lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
lastCol = .Cells(1, Columns.Count).End(xlToLeft).Column
ReDim zakres(1 To lastRow, 1 To lastCol, 1 To 2)
For i = 1 To lastRow
For j1 = 1 To lastCol
zakres(i, j1, 1) = .Cells(i, j1) 'cells value
zakres(i, j1, 2) = .Cells(i, j1).Interior.ColorIndex 'cells color property
Next
Next
毕竟,我们要对该表进行操作-我的意思是数组zakres
-只需使用双循环(行和列)将所有值粘贴到您的工作表中
For i = 1 To lastRow
For j1 = 1 To lastCol
.Cells(i, j1) = zakres(i, j1, 1)
.Cells(i, j1).Interior.Color = zakres(i, j1, 2)
Next
Next
我对代码进行了修改,该代码仅使用cell的1个属性-color属性-这种方法大大加快了我的代码的速度。
Ps。如果您不想用空单元格填充Array
,只需在循环中创建条件函数,这将跳过对空的迭代。它还将帮助并加速宏。
If .Cells(i, j1) <> "" Then
zakres(i, j1, 1) = .Cells(i, j1)
zakres(i, j1, 2) = .Cells(i, j1).Interior.ColorIndex
End If
我希望它能对某人有所帮助:)