Excel 宏,用于根据相邻coulmn中的非空白单元格设置范围
我试图在N列中添加一个excel公式,如果M列中的单元格不是空的,目前我有下面的代码,它将从N2添加到N7302,但我希望根据我提到的标准范围使用此公式,请帮助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
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