gpt4 book ai didi

vba - Excel宏: Modifying formula and appending segment

转载 作者:行者123 更新时间:2023-12-03 03:39:17 26 4
gpt4 key购买 nike

在 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

最佳答案

我将为您逐步完成此过程,但将来我建议使用 Debug.Print 和 F8(单步执行)来排除代码故障。

第 3 行:

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 行,您将在其中附加新标准。

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

关于vba - Excel宏: Modifying formula and appending segment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42732174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com