如何使用excel formua自动汇总所有工作表
我的工作簿包含多个工作表。我想要一个函数,它显示当前工作表的自动求和以及以前的非全部。例如,如果我在表1上,并且单元格“E12”中的值为1,则我将写入函数=自动求和(E12),该函数将以E13=1的形式显示结果。然后,在表2中,如果相同的单元格范围E12=2,并且我应用了功能“=autosum(E12),则它应显示在表2中E13=3。但是当我返回表1时,它应显示为与1相同,而不应显示全部合计 我正在使用此函数,但它在所有工作表上显示相同的总数。函数如下所示如何使用excel formua自动汇总所有工作表,excel,vba,sum,Excel,Vba,Sum,我的工作簿包含多个工作表。我想要一个函数,它显示当前工作表的自动求和以及以前的非全部。例如,如果我在表1上,并且单元格“E12”中的值为1,则我将写入函数=自动求和(E12),该函数将以E13=1的形式显示结果。然后,在表2中,如果相同的单元格范围E12=2,并且我应用了功能“=autosum(E12),则它应显示在表2中E13=3。但是当我返回表1时,它应显示为与1相同,而不应显示全部合计 我正在使用此函数,但它在所有工作表上显示相同的总数。函数如下所示 Function AutoSu
Function AutoSum(rng As Range) As Variant
AutoSum = ActiveSheet.Range("E12").Value
Application.Volatile True
For Each WS In Worksheets
If Not WS Is Application.ThisCell.Parent Then
AutoSum = AutoSum + WS.Range(rng.Address)
End If
Next
End Function
图纸布局如下所示
Function AutoSum(rng As Range) As Variant
AutoSum = ActiveSheet.Range("E12").Value
Application.Volatile True
For Each WS In Worksheets
If Not WS Is Application.ThisCell.Parent Then
AutoSum = AutoSum + WS.Range(rng.Address)
End If
Next
End Function
您的所有代码都是正确的,只需要很少的更改
AutoSum = ActiveSheet.Range("E12").Value
到
或者按照youtube视频lin使用以下代码
结束功能考虑:
Public Function AutoSum(rng As Range) As Variant
Application.Volatile
Dim addy As String, ws As Worksheet, wName As String
Dim wb As Workbook
addy = rng.Address
wName = rng.Parent.Name
Set wb = rng.Parent.Parent
AutoSum = 0
For Each ws In wb.Sheets
AutoSum = AutoSum + ws.Range(addy)
If ws.Name = wName Then Exit Function
Next ws
End Function
这将对所有工作表中的给定单元格加总,包括包含公式的工作表。Brother我的代码工作正常,生成了相同的结果,但我正在寻找代码中的修改,以便每个工作簿显示其工具和以前的工具。例如,sheet1应仅显示其总sheet2它和以前的总数一样。
Public Function AutoSum(rng As Range) As Variant
Application.Volatile
Dim addy As String, ws As Worksheet, wName As String
Dim wb As Workbook
addy = rng.Address
wName = rng.Parent.Name
Set wb = rng.Parent.Parent
AutoSum = 0
For Each ws In wb.Sheets
AutoSum = AutoSum + ws.Range(addy)
If ws.Name = wName Then Exit Function
Next ws
End Function