excel怎么做个公式,以后添加的工作表都能应用到

公司老大让我做个公式,使得第一张的某个单元格(比如F3)的结果是后面的各个工作表(后面的工作表的格式都是一样的)的同一个单元格(比如都是F3)相加的结果,而且工作表还会不断添加。

这个问题应该采用VBA脚本实现,原理为每次激活到需要运算的工作表时,自动检查工作簿中存在所有的工作表,并将表名与汇总表不同的表循环取数计算。

实现步骤如下:
1、进入工作簿后选择菜单栏-工具-宏-安全性-将安全性设为中或低,然后关闭工作簿后重新打开(若安全性设为中,跳出对话框时应点击允许运行宏);
2、按ALT+F11打开VBA编辑器,找到工程面板里的ThisWorkbook,右击选择查看代码;
3、这里假设你第一张工作表名叫Sheet1,再打开的脚本窗口中输入以下程序
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim sht As Worksheet, SumNum As Integer, i As Integer
Set sht = Worksheets("Sheet1")
For i = 1 To ThisWorkbook.Worksheets.Count
If Worksheets(i).Name <> sht.Name Then
SumNum = SumNum + Worksheets(i).Range("F3")
End If
Next i
sht.Range("F3") = SumNum
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-21
你这个问题应该采用VBA脚本实现,原理为每次激活到需要运算的工作表时,自动检查工作簿中存在所有的工作表,并将表名与汇总表不同的表循环取数计算。实现步骤如下:
1、进入工作簿后选择菜单栏-工具-宏-安全性-将安全性设为中或低,然后关闭工作簿后重新打开(若安全性设为中,跳出对话框时应点击允许运行宏);
2、按ALT+F11打开VBA编辑器,找到工程面板里的ThisWorkbook,右击选择查看代码;
3、这里假设你第一张工作表名叫Sheet1,再打开的脚本窗口中输入以下程序
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim sht As Worksheet, SumNum As Integer, i As Integer
Set sht = Worksheets("Sheet1")
For i = 1 To ThisWorkbook.Worksheets.Count
If Worksheets(i).Name <> sht.Name Then
SumNum = SumNum + Worksheets(i).Range("F3")
End If
Next i
sht.Range("F3") = SumNum
End Sub
如还有不理解,百度里M我。
PS. 关于上楼的方法=SUM('*'!F3), 不能够解决由新插入工作表时自动运算情况。
第2个回答  2010-12-21
很多张表第一个标签名为张三、最后一个为王五;汇总数据都是在F3单元格。就在汇总表F3输入 =SUM('张三:王五'!F3)或 =SUM('*'!F3) 这是求除本工作表外所有工作表F3的和。本回答被提问者采纳
第3个回答  2010-12-21
比如要统计表2-表5的F3合计
=SUM(Sheet2:Sheet5!F3)
增加了新的工作表就把公式里的SHEET5改一下,自动增加好像有点困难
第4个回答  2010-12-21
“相加”是不是求和,如果是求和的话只要求第一个=sum(所求的区域)——回车即可,其他的你要想继续求和的话将鼠标放在输有公式的区域当鼠标变为+——直接往下托就行了
相似回答