我怎样才能在Excel文件中的多个工作表中search一个值并添加结果?

我在电子表格中有20个工作表,标题是date… 2015年2月1日,2015年1月15日,2015年1月1日等。我想根据某个单词的datesearch每个工作表(将会有大约6个不同的单词….兄弟会,青年等)。 当find这个单词时,我想添加匹配单词的值。

ABC 1/2/2015 5 Brotherhood 2.00 5.00 6 Brotherhood 10.00 5.00 7 Brotherhood 5.00 8 Youth 1.00 5.00 9 Brotherhood 10.00 10 Brotherhood 5.00 1.00 

所以,如果我引用date1/2/2015并寻找“兄弟会”,它将去工作表“1.2.2015”search“兄弟会”,并返回第三列的总和。 结果应该等于26.00。

这是我正在处理的一个公式,但它并没有做我想要的一切,我将不得不手动更改我想要引用的每个日历date。 此外,它并不总是正确添加。

 IFERROR(SUM(VLOOKUP($D$1,'1.2.2015'!$A$5:$C$10,3)*'1.2.2015'!$C$5:$C$10*('1.2.2015'!$A$5:$A$10=$D$1)),0) 

D1将填入“兄弟会”一词。

有一个更简单的方法来完成这个? 有人可以告诉我为什么我的公式并不总是正确的?

你可以使用SumIfs ,我猜更简单了:
=SUMIFS(C1:C6,A1:A6,D1)

然后你可以使用这个公式来遍历所有的工作表。 使用方法
For each ws in worksheets ... next ws
注意:您可能必须检查工作表的名称,以免意外地不计算您不想计数的工作表上的单元格。

我认为你将不得不确定每个工作表上的最后一行。 您可以使用
intLastRow = ws.cells(ws.rows.count,3).end(xlUp).row
注意:假设没有低于我们添加的范围。

要计算总数,请在代码中使用增量行
dblSumTotal = dblSumTotal + Application.WorksheetFunction.SumIfs(ws.range("C1:C" & intLastRow ), ws.range("A1:A" & intLastRow ) ,"Brotherhood")
注意:而不是string“兄弟会”,你当然可以使用单元格引用。