N
Nigel
I have a VBA process that reads thru a single folder (on a corporate
network - high performance) of Excel workbooks, sequentially opens, extracts
a small number of data, then close without save. Only one workbook is open
at anyone time. There are 1350 workbooks which are all about ~7MB in size.
When the process first starts files are opened and closed reasonably
quickly, at about 12 per minute, as the process progresses it gets slower
and slower and eventually appears to stop (no error messages).
It appears as if system resources are being consumed as each file is
processed that are not released. Is this possible or is something else
causing the problem? My code is as follows.... the names of each files to
process are already stored on sheet (shcontrol) column A
Sub ProcessFiles()
Dim dataWb As Workbook
Dim xr As Long, nextData As Long
Application.EnableEvents = False
Application.ScreenUpdating = False
' start row for data
nextData = 1
' process each workbook
For xr = 1 To 1350
' open data workbook
Set dataWb = Workbooks.Open("H:\myFiles\" & shControl.Cells(xr, 1))
' get data
With dataWb.Sheets("Appraisal")
shControl.Cells(nextData, 4) = .Cells(10, "I").Value
shControl.Cells(nextData, 5) = .Cells(11, "I").Value
shControl.Cells(nextData, 6) = .Cells(12, "I").Value
End With
' advance o/p row
nextData = nextData + 1
' close workbook
dataWb.Close False
Next xr
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
network - high performance) of Excel workbooks, sequentially opens, extracts
a small number of data, then close without save. Only one workbook is open
at anyone time. There are 1350 workbooks which are all about ~7MB in size.
When the process first starts files are opened and closed reasonably
quickly, at about 12 per minute, as the process progresses it gets slower
and slower and eventually appears to stop (no error messages).
It appears as if system resources are being consumed as each file is
processed that are not released. Is this possible or is something else
causing the problem? My code is as follows.... the names of each files to
process are already stored on sheet (shcontrol) column A
Sub ProcessFiles()
Dim dataWb As Workbook
Dim xr As Long, nextData As Long
Application.EnableEvents = False
Application.ScreenUpdating = False
' start row for data
nextData = 1
' process each workbook
For xr = 1 To 1350
' open data workbook
Set dataWb = Workbooks.Open("H:\myFiles\" & shControl.Cells(xr, 1))
' get data
With dataWb.Sheets("Appraisal")
shControl.Cells(nextData, 4) = .Cells(10, "I").Value
shControl.Cells(nextData, 5) = .Cells(11, "I").Value
shControl.Cells(nextData, 6) = .Cells(12, "I").Value
End With
' advance o/p row
nextData = nextData + 1
' close workbook
dataWb.Close False
Next xr
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub