【问题标题】:Print Quantity of Cells of a Certain Color打印某种颜色的单元格数量
【发布时间】:2017-08-03 16:33:57
【问题描述】:
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 工作表中的行的完成情况。它应该忽略所有其他颜色(灰色、白色等)。当我使用上面发布的代码 sn-p 时,不会生成任何输出。一旦我突出显示黄色行中的第一个单元格(颜色索引 = 6),它应该会生成输出。 Image of excel file I'm trying to analyze.

【问题讨论】:

    标签: vba excel


    【解决方案1】:
    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
    

    这解决了它。我错误地将计数器变量放在了 for 循环中。

    【讨论】:

      猜你喜欢
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      • 2019-07-15
      • 1970-01-01
      • 1970-01-01
      • 2019-11-13
      • 2014-12-30
      • 1970-01-01
      相关资源
      最近更新 更多