我创建了一个函数,该函数从工作簿中的所有工作表中返回特定范围内的值的总和,并将其与标量相乘。 For循环旨在通过sheet Count属性到达书中的最后一页,但我将其减少为2张以帮助我找出问题所在。
就目前而言,For循环在一次迭代后退出,我无法通过查看代码来弄清楚为什么。 Do循环正在按预期方式解决。非常感谢您的帮助!
Public Function FPP_Total()
Dim Book As Workbook: Set Book = ActiveWorkbook
Dim sheetCount As Integer: sheetCount = Book.Sheets.Count
Dim total As Long
Dim rowCount As Integer
Dim currentSheet As Worksheet
rowCount = 2
For i = 3 To 5
Set currentSheet = Book.Sheets(i)
Do
total= (total+ currentSheet.Cells(rowCount, 3).Value)
rowCount = rowCount + 1
Loop Until IsEmpty(currentSheet.Cells(rowCount, 1).Value)
Next
FPP_Total = total * 5
结束功能
答案 0 :(得分:2)
您似乎正在尝试将C2
中的每张表格汇总到该列的最后一行。
您无需创建嵌套循环(
Public Function FPP_Total()
Dim ws As Worksheet 'Worksheet
Dim lr As Long 'Last Row
Dim total As Long
Dim i as Long
For i = 3 To ThisWorkbook.Sheets.Count
Set ws = ThisWorkbook.Sheets(i)
lr = ws.Range("C" & ws.Rows.Count).End(xlUp).Row
total = Application.WorksheetFunction.Sum(ws.Range("C2:C" & lr))
Next i
FPP_Total = total * 5
End Function