我在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
不知道它可能来自哪里......
答案 0 :(得分:3)
它来自j = j + k
。您永远不会将j
重置为0,因此会继续对其进行求和。只需添加j=0
:
OutPut.Value = j
j=0