VBA怎么跨工作表求和?

同一个工作簿,有30张工作表。工作表内容是清单类的(如图),每张行数不同,但最后一行的F列有汇总值。

想写个vba批量求和……这里是入门级小白,自己写了下面这个,但得到的值,不是30个数值相加,居然是30个数值相连Orz

求问一下,错在哪里?为什么求不出和……
Sub 多表求和()
Dim i As Long
Dim s, t As String
For i = 1 To 30
t = WorksheetFunction.SumIf(Sheets(i).Range("a1:a50"), "total", Sheets(i).Range("f1:f50"))
s = s + t
Next
[a19] = s
End Sub
附30个数值供参考:

第1个回答  2014-09-24
因为吧t定义成字符类型的变量了。吧t as string 改成 t as long应该就可以了本回答被提问者采纳
第2个回答  2014-09-24
Dim s, t As String——你将两个变量定义为字符型了,这可不行。
另外工作表个数如果不到30个也会出错,For i = 1 To 30 改为 For i = 1 To sheets.count 较好。
变量t显得多余,直接s=s+WorksheetFunction……不是更好吗。