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