Vba 带有列表对象的Application.WorksheetFunction.SumIfs
我有一个工作表函数,上面有列表对象,但它没有给出正确的值 输出总是0Vba 带有列表对象的Application.WorksheetFunction.SumIfs,vba,excel,excel-2007,Vba,Excel,Excel 2007,我有一个工作表函数,上面有列表对象,但它没有给出正确的值 输出总是0 Sub volsumif() Application.ScreenUpdating = False Set wb2 = ThisWorkbook Set ws1 = wb2.Sheets("Dist_Summary") 'Set a = wb2.Sheets("SALES").ListObjects("SALES").Range Set ws2 = wb2.Sheets("Dist_Pe
Sub volsumif()
Application.ScreenUpdating = False
Set wb2 = ThisWorkbook
Set ws1 = wb2.Sheets("Dist_Summary")
'Set a = wb2.Sheets("SALES").ListObjects("SALES").Range
Set ws2 = wb2.Sheets("Dist_Perf Total Brands")
Set ws3 = wb2.Sheets("SALES")
'Set ws4 = wb2.Sheets("SALES_Target").ListObjects("SALES_TARGET").ListRows.Count
Set ws5 = wb2.Sheets("Dump")
Set ws6 = wb2.Sheets("Top_Accts")
Set ws7 = wb2.Sheets("Per_Chn")
//before ws3.range("Z:Z")
ws2.Range("B83") = Application.WorksheetFunction.SumIfs _
(ws3.ListObjects("SALES").DataBodyRange(0, 26), _
ws3.ListObjects("SALES").DataBodyRange(0, 4), _
ws2.Range("A82"))
End Sub
您是否试图在
Sumifs
中以参数的形式访问整个列?
如果是,请尝试以下方法:
ws2.Range("B83") = Application.WorksheetFunction.SumIfs _
(ws3.ListObjects("SALES").ListColumns(26).DataBodyRange, _
ws3.ListObjects("SALES").ListColumns(4).DataBodyRange, _
ws2.Range("A82"))
谢谢你的编辑,你能帮我吗?只有z:z列是26,D:D列是4,我得到了一个错误类型mismatch@alkatraz你的桌子从哪里开始?A1号牢房?你真的在处理一个表对象吗?如果您的数据以A列开始,那么它应该可以工作。它在我这边有效。我正在访问D列和Z@alkatraz是的,我知道。但是你的桌子应该从A开始使用26和4。如果没有,则需要计算表中的Z和D列。