私はこのプログラムを実行して、150万の '.tab'形式のファイルをExcelに変換します。当初はこのプログラムは正常に動作していましたが、その後速度が遅くなりました。私はいくつかのシステムでこれを試してみました。また、私は一時ファイルをクリアしようとしましたが、クリーンアップを余儀なくされました。それを効率化するために私は何をすべきですか?VBAプログラムが遅くなる
Sub runFiles()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim fso As New FileSystemObject
Dim fldr As Object
Dim fldrPath As String
Dim i As Double
Dim wb As Workbook
fldrPath = "C:\Users\skumar150\Desktop\upwork data\RAW\ACS"
Set fldr = fso.GetFolder(fldrPath)
i = 551
For Each fl In fldr.Files
i = i + 1
Set wb = Workbooks.Open(fldr.Path & "\" & fl.Name)
createFile "C:\Users\skumar150\Desktop\upwork data\Excel Data1\ACS3", wb, i
Set wb = Nothing
fl.Delete
Next fl
Application.EnableEvents = True
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Function createFile(fldrPath As String, ByRef wb1 As Workbook, vr As Double)
Dim wb As Workbook
Dim flName As String, fldrName As String
Dim ws As Worksheet
Dim delrow As Integer
Set wb = Workbooks.Add
Set ws = Worksheets(wb.Sheets(1).Name)
wb1.Sheets(1).Range("a1").CurrentRegion.Copy wb.Sheets(1).Range("a1")
fname = wb1.Name
wb1.Close False
With wb
With ws
.Names.Add "countyID", ws.Range("b2").Value
.Names.Add "Title", ws.Range("b3").Value
.Names.Add "rate_per", ws.Range("b4").Value
.Names.Add "topic", ws.Range("b5").Value
.Names.Add "yLabel", ws.Range("b6").Value
delrow = Application.WorksheetFunction.Match("METADATA END", .Range("a:a"), 0)
.Rows("1:" & delrow).Delete
End With
.Close True, fldrPath & "\__sk" & vr & "_" & fname & ".xlsx"
End With
End Function