Excel 宏,用于根据相邻coulmn中的非空白单元格设置范围

Excel 宏,用于根据相邻coulmn中的非空白单元格设置范围,excel,vba,Excel,Vba,我试图在N列中添加一个excel公式,如果M列中的单元格不是空的,目前我有下面的代码,它将从N2添加到N7302,但我希望根据我提到的标准范围使用此公式,请帮助 Range("N2").Select ActiveCell.FormulaR1C1 = _ "=IF(IFERROR(VLOOKUP(RC[-11],'Service ID Master List'!C[-11],1,0),""Fail"")=""Fail"",""Check SESE_ID"",IF(IFERROR(VLOOK

我试图在N列中添加一个excel公式,如果M列中的单元格不是空的,目前我有下面的代码,它将从N2添加到N7302,但我希望根据我提到的标准范围使用此公式,请帮助

Range("N2").Select
ActiveCell.FormulaR1C1 = _
    "=IF(IFERROR(VLOOKUP(RC[-11],'Service ID Master List'!C[-11],1,0),""Fail"")=""Fail"",""Check SESE_ID"",IF(IFERROR(VLOOKUP(RC[-9],Rules!C[-13],1,0),""Fail"")=""Fail"",""Check SESE_RULE"",IF(AND(RC[-5]<>"" "",IFERROR(VLOOKUP(RC[-5],Rules!C[-13],1,0),""Fail"")=""Fail""),""Check SESE_RULE_ALT"",IF(IFERROR(VLOOKUP(RC[-11],'Service ID Master List'!C3:C6,4,0),""Fail"")=""Fail"",""Check SEPY_ACCT_CAT"",IF(RC[-7]=""TBD"",""Check SEPY_ACCT_CAT"",""Pass"")))))"
Range("N2").Select
Selection.AutoFill Destination:=Range("N2:N7302")
范围(“N2”)。选择
ActiveCell.FormulaR1C1=_
“=IF(IFERROR)(VLOOKUP(RC[-11],'Service ID Master List'!C[-11],1,0),”Fail“)=”Fail“,”Check SESE_ID“,”IF(IFERROR)(VLOOKUP(RC[-9],Rules!C[-13],1,0),”Fail“)=”Fail“,”Check SESE"RULE“,”IF(AND(RC[-5],”IFERROR(VLOOKUP)(RC[-5],Rules!C[-13],1,0),”Fail“,”Check SESE"RULE”=”Fail“,”Check SESE"SESE",IF(VLOOKUP)[-11]。”,“服务ID主列表”!C3:C6,4,0),“失败”=“失败”、“检查安全帐户类别”,如果(RC[-7]=“待定”、“检查安全帐户类别”、“通过”;)
范围(“N2”)。选择
Selection.AutoFill目标:=范围(“N2:N7302”)

您可以在一个步骤中将公式添加到多个单元格中,从而避免循环。要识别非空单元格,可以使用
SpecialCells
,再次避免循环

像这样的

Sub Demo()
    Dim sFormula As String
    Dim rng As Range
    Dim ws As Worksheet

    sFormula = "YourFormulaString"

    Set ws = ActiveSheet

    With ws
        Set rng = .Range("M2")
        Set rng = .Range(rng, .Cells(.Rows.Count, rng.Column).End(xlUp))
    End With
    rng.SpecialCells(xlCellTypeConstants).Offset(0, 1).FormulaR1C1 = sFormula
    ' If needed, uncomment next line
    'rng.SpecialCells(xlCellTypeFormulas).Offset(0, 1).FormulaR1C1 = sFormula
End Sub
上述代码假定M列中的单元格包含常量。如果需要,您可以使用
xlCellTypeFormulas