在Excel工作表中,我想通过删除最后一个字符并为其添加其他标准来修改多个公式。
基本上,而不是:
=SUMIFS(A1:A10, B1:B10, "", C1:C10, "Test")
我想:
=SUMIFS(A1:A10, B1:B10, "", C1:C10, "Test", C1:D10, "Test2")
鉴于我对VBA的普遍缺乏了解,我似乎无法弄明白......以下内容会产生错误:
Sub AppendCriterion()
Dim a As String
a = Right(Selection.Formula, Len(Selection.Formula) - 1)
a = Selection.Formula + ", C1:D10, "Test2")"
Selection.Formula = a
End Sub
答案 0 :(得分:2)
我将为您逐步完成此操作,但将来我建议您使用Debug.Print和F8(步入)来解决您的代码问题。
a = Right(Selection.Formula, Len(Selection.Formula) - 1)
这实际上是从左侧减去1个字符。
Input: =SUMIFS(A1:A10, B1:B10, "", C1:C10, "Test")
Output: SUMIFS(A1:A10, B1:B10, "", C1:C10, "Test")
所以,将Right(..)
更改为Left(...)
Input: =SUMIFS(A1:A10, B1:B10, "", C1:C10, "Test")
Output: =SUMIFS(A1:A10, B1:B10, "", C1:C10, "Test"
现在我们已经删除了,让我们继续前进到第4行,你要附加新标准。
a = Selection.Formula + ", C1:D10, "Test2")"
有关此问题的一些注意事项,如果要在字符串中显示引号字符,则必须使用引号将其转义,这会让人感到有些困惑。此外,您正在设置a = Selection.Formula
+ ..这是原始的,而不是您在第3行修改的字符串。最后,您新添加的标准是C1:D10,这将导致计算错误,我想你想要D1:D10。
a = a + ", D1:D10, ""Test2"")"
Sub AppendCriterion()
Dim a As String
a = Left(Selection.Formula, Len(Selection.Formula) - 1)
a = a + ", D1:D10, ""Test2"")"
Selection.Formula = a
End Sub