微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

宏中的计数

如何解决宏中的计数

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

这是当前代码

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"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。