gpt4 book ai didi

vba - 在 Excel 中将矩阵 (?) 传递给 VBA

转载 作者:行者123 更新时间:2023-12-02 20:18:29 25 4
gpt4 key购买 nike

Excel 中具有多个条件的 SUMIF() 的一个常见解决方案如下所示(此公式统计 A 列在 C1 中具有值且 B 列在 D1 中具有值的所有情况):

=SUMPRODUCT((A1:A9=C1)*(B1:B9=D1))

我现在需要一个函数来连接满足多个条件的行中的字符串。 http://www.ms-office-forum.net/forum/showthread.php?t=273352 对于一个情况有一个很好的解决方案。

但是,我想检查多个条件 - 因此使用上面的 SUBPRODUCT() 技巧。我的问题是:如何在函数中定义参数才能获取数组?这是我到目前为止得到的:

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Function CONCATIF(Kriterium, Inhalte)
Dim mydic As Object
Dim L As Long
Set mydic = CreateObject("Scripting.Dictionary")

For L = 1 To UBound(Kriterium)
If Kriterium(L, 1) = 1 Then
If Inhalte(L, 1) <> "" Then
mydic(L) = Inhalte(L, 1)
End If
End If
Next
CONCATIF = Join(mydic.items, vbCrLf)
End Function

如果我为参数 1 选择一列,则效果很好。但是一旦我包含乘积公式(如上所示),只有值为 1 的 Variant/Double 会传递给 Kriterium .

=CONCATIF(A1:A9; E1:E9)                    Works fine (if column A is 0/1 coded)
=CONCATIF((A1:A9=C1)*(B1:B9=D1); E1:E9) Does not work at all

有什么建议吗?谢谢!

最佳答案

问题是因为公式:

=CONCATIF((A1:A9=C1)*(B1:B9=D1); E1:E9)

需要通过按CTRL+SHIFT+ENTER来调用

关于vba - 在 Excel 中将矩阵 (?) 传递给 VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21063780/

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