VBA跨工作表带条件SumProduct函数调用报错求助
VBA SumProduct调用报错:类型不匹配与400错误求助
我编写了一个VBA宏,用于将工作簿中不同工作表的数据汇总至汇总表,循环执行SumIfs、SumProduct计算,该代码需适配其他参数不同的工作簿。目前SumIfs可正常运行,但通过Application.WorksheetFunction调用SumProduct时出现类型不匹配错误,推测是函数调用或条件写法存在问题。
【更新内容】:参考社区建议,我对代码做了变量声明、移除冗余变量等修改,尝试了两种写法均无效。无条件时代码填充一行后返回400错误。
尝试的两种写法
- 使用Evaluate:
.Cells(i, 38 + l) = Evaluate("=SUMPRODUCT(" & Worksheets(Cells(i, 1).Value).Columns(81 + l * 4).EntireColumn & "," & Worksheets(Cells(i, 1).Value).Columns(81 + l * 4).EntireColumn & ",--(" & Worksheets(Cells(i, 1).Value).Columns(4).EntireColumn & "=" & .Cells(i, 2).Value & "),--(" & Worksheets(Cells(i, 1).Value).Columns(5).EntireColumn & "=" & .Cells(i, 3).Value & "))")
- 直接调用Application.WorksheetFunction.SumProduct:
.Cells(i, 38 + l) = Application.WorksheetFunction.SumProduct(Worksheets(Cells(i, 1).Value).Columns(81 + l * 4).EntireColumn, Worksheets(Cells(i, 1).Value).Columns(83 + l * 4).EntireColumn, --(Worksheets(Cells(i, 1).Value).Columns(4).EntireColumn = .Cells(i, 2).Value), --(Worksheets(Cells(i, 1).Value).Columns(5).EntireColumn = .Cells(i, 3).Value))
附上完整宏代码,恳请社区提供技术支持。
内容的提问来源于stack exchange,提问作者Ivans Nozdračevs
相关产品推荐
相关产品推荐

