簡體   English   中英

VBA循環僅通過一張紙

[英]VBA loop only going through one sheet

我創建了一個函數,該函數從工作簿中的所有工作表中返回特定范圍內的值的總和,並將其與標量相乘。 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

結束功能

看來您正在嘗試將C2每張圖紙C2到該列的最后一行。

無需創建嵌套循環( @TheJeebo將其標識為問題的根源 ),您可以簡單地確定所討論的動態范圍並一次將所有范圍相加,如下所示。 將其嵌套在工作表循環中以獲得所需結果


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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM