目前我有一个工作表,里面有不同颜色的单元格,如下所示:
[流动资产负债表]http://imgur.com/na6nvNH
我使用一个数组来计算每列的彩色单元格。这是我的代码片段:
Dim difference(0 To 41) As Long
For Each mycell In ActiveWorkbook.Worksheets("Differences").UsedRange
Dim col As Long
col = mycell.Column
If ActiveWorkbook.Worksheets("Differences").Cells(mycell.Row,mycell.Column).Interior.Color = vbRed Then
difference(col) = difference(col) + 1
End If
Next mycell
Sheets("Summary").Cells(47, 3) = difference(0)
Sheets("Summary").Cells(48, 3) = difference(1)
Sheets("Summary").Cells(49, 3) = difference(2)
etc.
它将列出我每列的彩色单元格数量。我需要帮助将其分解,这样我就可以创建一个表,显示每个部门的彩色单元格数量。我不知道该怎么做!
为了更容易查看,我希望创建这个:
[最终表格]https://i.stack.imgur.com/0fh56.jpg
我应该补充一点:表格中的行数可能会有所不同,也可能因部门而异
尝试从第一个部门开始应用列过滤器,然后在应用过滤器后计算彩色单元格,但是,由于我正在查看上面代码中的每个单元格,结果仍然是每列。
对于任何想要找到答案的人来说,这是一个相当长的方法。但是,我应用了一个过滤器,然后将范围设置为仅可见单元格,而不是整个工作表中使用的范围
似乎使用多维数组会容易得多,所以你会有array(4,7),所以一些sudo代码可能看起来像。我可以做真正的代码,但你似乎知道自己在做什么。
Select Case mycell.row
Case 1
Array(1,Col) = Array(1,Col) + 1
Case 2
Array(1,Col) = Array(1,Col) + 1
Case 3
Array(2,Col) = Array(2,Col) + 1
end select
多维数组的诀窍是把它想象成一张电子表格,(2,2)=3行乘3列。。。(3因为数组从0开始)它的美妙之处在于,如果你在提取数据时这样做,你只需放置一个双环
For I =0 to Ubound(Array)
For II = 0 to Ubound(Array,2)
Cell(I,II).Value = Array(I,II)
next
next