【发布时间】:2014-05-13 18:44:11
【问题描述】:
嗨,我正在编写这样的 VBA 代码 -
如果在范围 D1:D20 的任何单元格值中找到单元格 M1 的值,则在范围 C1:C20 中找到相应单元格值的总和。 但是我对如何使用函数和传递参数感到困惑。这是我现在尝试过的,但它不起作用
Private Sub FindTotal()
Dim Temp2Sheet As Worksheet
Set Temp2Sheet = Sheets("Temp2")
Temp2Sheet.Activate
Dim temp As String
temp = Temp2Sheet.Range("M1").Value
Temp2Sheet.Range("N1").Value = Application.SumIf(Range("D1:D20"), "" * "&temp&" * "", Range("C1:C20"))
End Sub
我需要将 Range M1 的相同逻辑扩展到列 M 有多少个值,并且它是动态的。总计将出现在 M 列相应单元格的 N 列中。就像 M1 总计将在 N1 中,依此类推
我的主要困惑是如何将 temp 变量作为 SUMIF 函数的参数 2 传递并添加通配符 (**)
感谢任何帮助。 提前致谢
【问题讨论】:
-
您遇到错误了吗?我很确定如果要包含双引号,则需要三个双引号,例如“””。话虽如此,我认为您最好放弃 SUMIF 公式并遍历行并使用If...Then 语句。
-
没有错误...但单元格 N1 中没有设置任何内容。我确定这是因为匹配标准不正确。我只是想避免传统的循环方法,这更容易,但仍然是我的备份选项
-
另外,你想要在通配符前后有一个空格吗?试试这个:"""" & temp & """"
-
评论中似乎没有正确显示,我会在答案中添加它。