具有可变数量标准的Sumifs

我正在做一个项目来自动化一些报告。 要求是嵌套在不同级别的汇总表(国家,地区,销售人员,产品)。 级别的数量将根据用户和客户的不同而有所不同。 我正在努力的是如何VBAbuild立sumifs的参数数量将不知道,直到代码运行。

Dim i as Long Dim InSh As Object Dim OutSh As Object Set InSh = Workbooks("Readin").Worksheets("Sheet1") Set OutSh = Workbooks("Output").Worksheets("Sheet1") for(i in 2 to n) OutSh.Cells(i, 1) = Application.WorksheetFunction.SumIfs(Insh.Range(rng_0),Insh.range(rng_1) _ ,"Criteria_1",.....,Insh.Range(rng_n,"Criteria_N") next i 

我想避免让VBA在Excel单元格中写入公式有两个原因。 一,对底层数据的访问是有限的,不会被发送到文件中。 二是速度。 我相信这样做会更快,因为手工制作这些报告的时候,会有数千个这样的公式在多张纸上创build。

我试图通过创build一个string和数组,将variables提供给sumif语句,但是这两次我收到一个不匹配的错误。 我能想到的唯一解决scheme是基于传递的标准数量的select案例声明,但这仅限于我将编程的内容,而且我不知道标准有多深。