0
我试图在vba中使用Sumproduct函数。 首先我想这:Sumprod评估给出名称vba
sht.Cells(LastRowsht + 1, 6) = Application.SUMPRODUCT((Transaction = "Vente") * (TickerD2 = sht.Cells(LastRowsht + 1, 2)), ValeurFlux))
哪里交易,TickerD2和ValeurFlux是相同lenght的范围(这是一整列)。 我在许多论坛上看到,在有标准的情况下,vba中的sumproduct存在问题。
人建议使用.Evaluate
sht.Cells(LastRowsht + 1, 6) = Application.Evaluate("SOMMEPROD((Transaction = "Vente") * (TickerD2 = sht.Cells(LastRowsht + 1, 2)), ValeurFlux)")
但它给的名字。 我使用SOMMEPROD,因为我的Excel是法文的,所以我想我需要翻译。 我认为公式中存在拼写错误,但我不熟悉评估。
谢谢。
这是我在Excel中使用的公式,它的工作原理! 我不知道为什么在VBA它不能
=SOMMEPROD((Data2!D:D="Achat")*(Data2!C:C=B8);Data2!I:I)
TickerD2,交易和valeurflux是在另一个表中的范围。我尝试在公式中插入TickerD2.Address,但它不起作用,因为它只是给我$ D:$ D(没有表单来查找它) – Florian
使用'TickerD2.Address(external:= true)'获取完整路径和工作表名称。给予太多的信息,如完整的道路是可以的,但永远不会放弃。 – Jeeped
顺便说一句,你真的不应该在[SUMPRODUCT函数]中使用完整的列引用(https://support.office.com/en-us/article/sumproduct-function-4e0bffa7-4291-4635-a61f-6aaa9399e7ff) 。有多种方法可将范围降低到动态命名范围所需的最小范围。 – Jeeped