用于对另一个具有多个工作表的工作簿的值求和的宏
Macro to sum values from another Workbook with Multiple Sheets
我正在从事一个项目,该项目要求我对另一个 excel 工作簿中的多个值求和。
另一个工作簿包含 120 个 sheets。我想从每个 sheet 中获取特定值,并将其与其余值相加。所有 120 个值的单元格引用都是固定的,例如 J3。
另一件值得一提(也许)的事情是 sheet 代码名称没有组织(即 Sheet 1 一直到 Sheet 120),有几个sheets added/removed介于两者之间。
现在我正在
Run Time Error 424 Object Required
Sub SumProject1P()
Dim Project1P As Workbook
Dim reserves
Dim WS_Count As Integer
Dim i As Integer
Dim V As Variant
Set Project1P = Workbooks.Open("FILE PATH")
WS_Count = Workbook.Worksheets.Count
V = Workbook.Worksheets
reserves = sumrange(Workbook.Worksheets(V).range(Cells(1, 8)))
End Sub
Function sumrange(range)
summ = 0
For i = 1 To WS_Count
summ = summ + reserves
Next
reserves = summ
End Function
我希望收到反馈和意见。
给你
Sub SumProject1P()
Dim Project1P As Workbook
Dim reserves As Long
Dim WS_Count As Integer
Dim filePath As String
filePath = "Enter you file path"
Set Project1P = Workbooks.Open(filePath, ReadOnly:=True)
WS_Count = Project1P.Worksheets.Count
For i = 1 To WS_Count
If Sheets(i).range("J3") <> "" And IsNumeric(Sheets(i).range("J3")) Then
reserves = reserves + Sheets(i).range("J3")
End If
Next
MsgBox "Total of all sheets :" & reserves
End Sub
您收到 object required
错误,因为您没有对任何对象使用 Worsheets.count
函数。
您的代码:
Set Project1P = Workbooks.Open("FILE PATH")
WS_Count = Workbook.Worksheets.Count
您需要为 Project1P
个对象使用此函数。
Set Project1P = Workbooks.Open("FILE PATH")
WS_Count = Project1P .Worksheets.Count
Santosh已经给了你最简单的方法。不过,如果您想使用 Function
来做到这一点,请尝试以下方法。
Sub Sum()
Dim Project1P As Workbook
Dim WS_Count As Integer
Dim i As Integer
Dim V As Variant
Set Project1P = Workbooks.Open("File path")
WS_Count = Project1P.Worksheets.Count
sumrange (WS_Count)
End Sub
Function sumrange(TotalSheets As Integer)
Dim reserves As Integer
For i = 1 To TotalSheets
If Sheets(i).range("J3") <> "" And IsNumeric(Sheets(i).range("J3")) Then
reserves = reserves + Sheets(i).range("J3")
End If
Next
MsgBox "Total of all sheets :" & reserves
End Function
我正在从事一个项目,该项目要求我对另一个 excel 工作簿中的多个值求和。
另一个工作簿包含 120 个 sheets。我想从每个 sheet 中获取特定值,并将其与其余值相加。所有 120 个值的单元格引用都是固定的,例如 J3。
另一件值得一提(也许)的事情是 sheet 代码名称没有组织(即 Sheet 1 一直到 Sheet 120),有几个sheets added/removed介于两者之间。
现在我正在
Run Time Error 424 Object Required
Sub SumProject1P()
Dim Project1P As Workbook
Dim reserves
Dim WS_Count As Integer
Dim i As Integer
Dim V As Variant
Set Project1P = Workbooks.Open("FILE PATH")
WS_Count = Workbook.Worksheets.Count
V = Workbook.Worksheets
reserves = sumrange(Workbook.Worksheets(V).range(Cells(1, 8)))
End Sub
Function sumrange(range)
summ = 0
For i = 1 To WS_Count
summ = summ + reserves
Next
reserves = summ
End Function
我希望收到反馈和意见。
给你
Sub SumProject1P()
Dim Project1P As Workbook
Dim reserves As Long
Dim WS_Count As Integer
Dim filePath As String
filePath = "Enter you file path"
Set Project1P = Workbooks.Open(filePath, ReadOnly:=True)
WS_Count = Project1P.Worksheets.Count
For i = 1 To WS_Count
If Sheets(i).range("J3") <> "" And IsNumeric(Sheets(i).range("J3")) Then
reserves = reserves + Sheets(i).range("J3")
End If
Next
MsgBox "Total of all sheets :" & reserves
End Sub
您收到 object required
错误,因为您没有对任何对象使用 Worsheets.count
函数。
您的代码:
Set Project1P = Workbooks.Open("FILE PATH")
WS_Count = Workbook.Worksheets.Count
您需要为 Project1P
个对象使用此函数。
Set Project1P = Workbooks.Open("FILE PATH")
WS_Count = Project1P .Worksheets.Count
Santosh已经给了你最简单的方法。不过,如果您想使用 Function
来做到这一点,请尝试以下方法。
Sub Sum()
Dim Project1P As Workbook
Dim WS_Count As Integer
Dim i As Integer
Dim V As Variant
Set Project1P = Workbooks.Open("File path")
WS_Count = Project1P.Worksheets.Count
sumrange (WS_Count)
End Sub
Function sumrange(TotalSheets As Integer)
Dim reserves As Integer
For i = 1 To TotalSheets
If Sheets(i).range("J3") <> "" And IsNumeric(Sheets(i).range("J3")) Then
reserves = reserves + Sheets(i).range("J3")
End If
Next
MsgBox "Total of all sheets :" & reserves
End Function