宏中的计数

问题描述

我正在尝试更新需要验证两个条件而不是一个条件的旧宏。

这是当前代码

Columns("G:G").Select
TempString = "IF(RC[4]>0,""1,"","""")&IF(RC[7]>0,""2,"""")&IF(RC[10]>0,""3,"""")&IF(RC[13]>0,""4,"""")"
Selection.FormulaR1C1 = "=IF(LEN(" + TempString + ") > 0,LEFT( " + TempString + ",LEN( " + TempString + " ) - 1 )," + TempString + " )"
Columns("G:G").EntireColumn.AutoFit
Range("G1").Select
ActiveCell.FormulaR1C1 = "Map"

这是我尝试使用的代码。我希望它验证两个条件,而不是现在的当前条件。它应该验证列名,以及右边四个直接空格的单元格(如果单元格中的数字大于 0,则为真):

Columns("G:G").Select
TempString = "IF(COUNTIFS(R[-1]C[4],"*MAP*",RC[4],">0"),"""")&IF(COUNTIFS(R[-1]C[7],RC[7]," + TempString + " )"
Columns("G:G").EntireColumn.AutoFit
Range("G1").Select
ActiveCell.FormulaR1C1 = "Map"

当我尝试使用更新后的代码时,我收到“预期:语句结束”。我知道这是因为逗号,但我不知道将它拉入宏。任何帮助,将不胜感激。谢谢。

解决方法


TempString = "IF(COUNTIFS(R[-1]C[4],""*MAP*"",RC[4],"">0""),""1,"","""")&" & _
              "IF(COUNTIFS(R[-1]C[7],RC[7],"""")"

With Columns("G:G")
    .FormulaR1C1 = Replace("=IF(LEN(<ts>)>0,LEFT(<ts>,LEN(<ts>)-1),<ts>)",_
                           "<ts>",TempString)
    .EntireColumn.AutoFit
End With
Range("G1").Value = "Map"