总和太多的循环

时间:2017-09-15 18:52:49

标签: excel vba loops

我在VBA中制作了一个循环问题:我有一个文件夹中填充了几个excel文件,对于每个文件,我都想要列A,我希望求和,直到列H上达到某个条件为止。 代码似乎工作但问题是它保留了它运行的最后一个工作表的总和,例如我得到输出:

 (Sheet1)   45
 (sheet2)   90 (+45)
 (sheet3)   135 (+45)

而不是

 (sheet 1)   45
 (sheet 2)   45
 (sheet 3)   45

 **
    Sub BIA_data_files()
        'Application.ScreenUpdating = False
        Dim wB As Workbook
        Dim SumResult As Double
        Dim OutPut As Range
        Set FileSystemObj = CreateObject("Scripting.FileSystemObject")

        Set FolderObj = 
FileSystemObj.GetFolder("C:\Users\practica.trafico\Desktop\SecuriteeTest\")
        Set OutPut = Workbooks("Libro1").Sheets("Hoja1").Range("A1")

        For Each fileobj In FolderObj.Files
            Set wB = Workbooks.Open(fileobj.Path)
            Dim rngH, i, j, k As Integer

            With wB.Sheets("Schedule Daily Bank Structure R")            
               For i = 2 To 500
                  rngH = Left(.Cells(i, "H").Value, 2)
                  If rngH = 11 Then
                     k = .Cells(i, "A").Value
                  End If
                  j = j + k
                  k = 0
               Next i

               OutPut.Value = j
               Set OutPut = OutPut.Offset(1, 0)
            End With

            wB.Save
            wB.Close
        Next fileobj
     End Sub

不知道它可能来自哪里......

1 个答案:

答案 0 :(得分:3)

它来自j = j + k。您永远不会将j重置为0,因此会继续对其进行求和。只需添加j=0

即可
OutPut.Value = j
j=0