我正在做一个项目,要求我在另一个Excel工作簿中求和多个值。
另一本工作簿包含120页。我想从每个工作表中获取一定的值,并将其与其余的值相加。所有120个值的单元格引用都是固定的,例如J3。
值得一提(也许)的另一件事是工作表代码名称没有组织(即工作表1一直到工作表120),在它们之间添加/删除了几张工作表。
现在我得到
运行时错误424需要对象
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
我希望收到反馈和输入。
答案 0 :(得分:1)
你在这里
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
答案 1 :(得分:0)
由于没有对任何对象使用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