VBA Do直到findstring,然后退出步骤

我有一个文件的date值列标题,最后一列将永远被标记为“总计”。 我想要一种方法来查看列标题,(在单元格D4:I4)和input公式稍后填写。

例如,如果我们检查D4,它不包含“总计”,那么我需要在单元格L4和L5中input以下公式:

Range("L4").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = _ "=""Weekending ""&TEXT(RC[-8],""mm/dd/yyy"")&"" Compliant?""" Range("L5").Select ActiveCell.FormulaR1C1 = _ "=IF((IF(RC17=""Duplicate"",SUMIF(C2,RC2,C[-8]),RC[-8]))<27,""Compliant"", IF((IF(RC17=""Duplicate"",SUMIF(C1,RC1,C[-8]),RC[-8]))<30,""Approaching Limit"", ""Over""))" 

然后它将转到单元格E4,如果它不包含“总计”,那么需要在单元格M4和M5中input公式。一旦find[总计](位于循环的顶部),我需要退出循环(但不是子)。

我试图从我find的代码拼凑一些位:

 Dim GrTot As String Dim rng1 As Range Set rng1 = Range("D4:I4") GrTot = "Grand Total" Range("D4").Select Do While ActiveCell.Value <> GrTot 

但我不知道该去哪里。 任何帮助表示赞赏。

编辑:

我从此尝试了另一种基于在此处find的示例的方法。 这是我目前的:

 Dim x As Integer Dim y As Integer With Worksheets("Pivot") x = 4 Do Until .Cells(4, x).Value = "Grand Total" For y = 12 To 16 .Cells(4, y).Formula = "=""Weekending ""&TEXT(RC[-8],""mm/dd/yyy"")&"" Compliant?""" .Cells(5, y).Formula = "=IF((IF(RC17=""Duplicate"",SUMIF(C2,RC2,C[-8]), RC[-8]))<27,""Compliant"",IF((IF(RC17=""Duplicate"", SUMIF(C1,RC1,C[-8]),RC[-8])) <30,""Approaching Limit"",""Over""))" Next y x = x + 1 Loop End With End Sub 

但是这个不能正确退出。 它会循环通过罚款,写我的要求公式,但它不会退出循环,当它到达“总计”列。 我在这里做错了什么?

循环遍历范围中的每个单元格; 如果单元格没有值,则可以将任何内容写入单元格,然后再写入偏移量。 一旦在你的范围内发现总数,循环可以退出并移动到下一个范围。

 For Each item In Range If item.Value = GrTot Then Exit For 'Perform action on cell item.Value = formula item.offset(0,1).Value = formula item.offset(0,2).Value = formula End If