打印某种颜色的单元格的数量

Sub PercentCompletePipes() Dim k As Range Dim Counter As Integer Dim Green As Integer Dim Red As Integer Red = 0 Green = 0 xTitleId = "Percentage Completed Inverts" MsgBox "This macro defines the percentage of pipes with completed inverts. It ignores all PRIVATE pipes." MsgBox "WARNING: This macro only works with COMPLETED invert excel sheets." For Each k In ActiveSheet.UsedRange.Rows Counter = 0 If Counter >= 4 Then If ActiveSheet.Cells(k.Row, 1).Interior.ColorIndex = 4 Then Green = Green + 1 ElseIf ActiveSheet.Cells(k.Row, 1).Interior.ColorIndex = 3 Then Red = Red + 1 ElseIf ActiveSheet.Cells(k.Row, 1).Interior.ColorIndex = 6 Then ActiveSheet.Cells(k.Row, 1).Value = "COMPLETED PIPES:" ActiveSheet.Cells(k.Row, 2).Value = Green ActiveSheet.Cells(k.Row + 1, 1).Value = "INCOMPLETE PIPES:" ActiveSheet.Cells(k.Row + 1, 2).Value = Red ActiveSheet.Cells(k.Row + 2, 1).Value = "PERCENTAGE COMPLETE:" ActiveSheet.Cells(k.Row + 2, 2).Value = Green / (Red + Green) End If End If Counter = Counter + 1 Next k End Sub 

对不起,入门级的问题,但我想打印出我的Excel表格中的行的完成,根据每行中的第一个单元格是绿色还是红色(绿色是完整的,红色是不完整的)。 它应该忽略所有其他颜色(灰色,白色等)。 当我使用上面发布的代码片段时,不会生成输出。 它应该生成一个输出,一旦我突出显示行中的第一个单元格黄色(颜色索引= 6)。 excel文件的图像我试图分析。

 Sub PercentCompletePipes() Dim k As Range Dim Counter As Integer Dim Green As Integer Dim Red As Integer Red = 0 Green = 0 Counter = 0 xTitleId = "Percentage Completed Inverts" MsgBox "This macro defines the percentage of pipes with completed inverts. It ignores all PRIVATE pipes." MsgBox "WARNING: This macro only works with COMPLETED invert excel sheets." For Each k In ActiveSheet.UsedRange.Rows If Counter >= 4 Then If ActiveSheet.Cells(k.Row, 1).Interior.ColorIndex = 4 Then Green = Green + 1 ElseIf ActiveSheet.Cells(k.Row, 1).Interior.ColorIndex = 3 Then Red = Red + 1 ElseIf ActiveSheet.Cells(k.Row, 1).Interior.ColorIndex = 6 Then ActiveSheet.Cells(k.Row, 1).Value = "COMPLETED PIPES:" ActiveSheet.Cells(k.Row, 2).Value = Green ActiveSheet.Cells(k.Row + 1, 1).Value = "INCOMPLETE PIPES:" ActiveSheet.Cells(k.Row + 1, 2).Value = Red ActiveSheet.Cells(k.Row + 2, 1).Value = "PERCENTAGE COMPLETE:" ActiveSheet.Cells(k.Row + 2, 2).Value = Green / (Red + Green) End If End If Counter = Counter + 1 Next k End Sub 

这固定它。 我把计数器的variables错误地放在for循环中。