【问题标题】:Perform For Loop after first instance of condition在条件的第一个实例之后执行 For 循环
【发布时间】:2020-08-27 15:20:57
【问题描述】:

我从第 10 行开始有 5 列数据:

C:材质
D:全额费用
E: 储蓄
F:发票成本
G:期间
H:不保存的原因

如果没有提供节省(即全部成本 = 发票成本),并且该材料已在同一期间输入,我想突出显示 H 列中的单元格以显示必须提供的原因。

我了解如何在 for 循环中使用简单的计数来执行此操作。
突出显示单元格的代码,但不排除期间内材料的第一个实例:

For A = 10 To PD.Range("C" & Rows.Count).End(xlUp).Row

    If PD.Range("H" & A).Value = "" And PD.Range("D" & A).Value = PD.Range("F" & A).Value And _
      WorksheetFunction.CountIfs(PD.Range("C10:C5500"), PD.Range("C" & A).Value, PD.Range("G10:G5500"), PD.Range("G" & A).Value) > 1 Then
      
        PD.Range("H" & A).Interior.Color = RGB(253, 211, 211)
        
    End If
Next A
        

我只希望在给定期间编号中输入第一个材料实例后突出显示 H 列。 IE。第一次在周期中输入材料时,无需在同一周期之后的任何时间突出显示 H 列中的单元格 - 应突出显示单元格。

我想我需要在 Period Number 旁边添加某种材料变量计数器来跟踪这一点。

【问题讨论】:

    标签: excel vba loops for-loop


    【解决方案1】:

    您可以在向下移动时调整 Countifs() 范围:

    For A = 10 To pd.Range("C" & Rows.Count).End(xlUp).Row
        With pd.Rows(A)
            If .Columns("H").Value = "" And _
               .Columns("D").Value = .Columns("F").Value And _
                 Application.CountIfs(pd.Range("C10:C" & A), .Columns("C").Value, _
                                      pd.Range("G10:G" & A), .Columns("G").Value) > 1 Then
    
                .Columns("H").Interior.Color = RGB(253, 211, 211)
    
            End If
        End With
    Next A
    

    【讨论】:

      【解决方案2】:
      Dim FirstSkipped as Boolean
      FirstSkipped = False
      For A = 10 To PD.Range("C" & Rows.Count).End(xlUp).Row
         If FirstSkipped Then
              If PD.Range("H" & A).Value = "" And PD.Range("D" & A).Value = PD.Range("F" & A).Value And _
              WorksheetFunction.CountIfs(PD.Range("C10:C5500"), PD.Range("C" & A).Value, PD.Range("G10:G5500"), PD.Range("G" & A).Value) > 1 Then
      
                  
              PD.Range("H" & A).Interior.Color = RGB(253, 211, 211)
              
              End If
         End if
         FirstSkipped = True
       Next A
      

      【讨论】:

        猜你喜欢
        • 2019-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-04
        • 2021-06-27
        • 1970-01-01
        相关资源
        最近更新 更多