我想要将这个公式=1+ LEN(AT2) - LEN(SUBSTITUTE(AT2, "+", ""))
应用于列AU,它会动态地将变量(在这种情况下为AT2)更改为迭代到下一行,例如AT2,AT3,AT4。
目前,此代码不断被抛出
应用程序/对象错误
我似乎无法解决这个问题。基本上我希望公式做的是计算" +"发生在之前的列中,并为该数字添加1。任何帮助都会很棒!提前谢谢。
With wsIt
Range("AU2:AU" & LastRow).Formula = "=LEN(AT2) - LEN(SUBSTITUTE(AT2, " + ", ""))"
End With
答案 0 :(得分:2)
我相信只需要在公式中使用它们时就需要加倍引号:
Range("AU2:AU" & LastRow).Formula = "=LEN(AT2) - LEN(SUBSTITUTE(AT2, "" + "", """"))"
注意:请注意,这会搜索[space]+[space]
替换,因此不会将空格替换为asd+asd
,只需asd + asd
)
答案 1 :(得分:1)
如果你想为每个细胞AT2,AT3,AT4 ...使用动态公式...使用FormulaR1C1
,计算标准" +"没有空格和双引号""+""
""""
:
.Range("AU2:AU" & LastRow).FormulaR1C1 = "=LEN(RC[-1]) - LEN(SUBSTITUTE(RC[-1], ""+"", """"))+1"
答案 2 :(得分:1)
如其他回复中所述,您需要在带引号的字符串中加倍双引号。或者,您可以使用无需引号即可重现相同结果的方法。
With wsIt
Range("AU2:AU" & LastRow).Formula = "=LEN(AT2) - LEN(SUBSTITUTE(AT2, CHAR(41), TEXT(,)))"
End With
答案 3 :(得分:0)
缺少“。”在Range
前面 - 应该是:
With wsIt
.Range("AU2:AU" & LastRow).Formula = "=LEN(AT2) - LEN(SUBSTITUTE(AT2, " + ", ""))"
End With
关于“”“”的其他答案也适用 - 也可以使用chr(34)
来发布报价。