Для обработки всех файлов в каталоге вы можете использовать функцию Directory.EnumerateFiles .
Не совсем просто избавиться от приложения Excel, если код имеетЗакончив его использование, я добавил для вас некоторые из Правильный способ утилизации объекта Excel com с помощью VB.NET?.
Я не знаю, что вы намеревались использовать с = True
в команде, чтобы открыть книгу, поэтому я пропустил ее.
Option Strict On
Imports System.IO
Imports Excel = Microsoft.Office.Interop.Excel
Public Sub DoCombine()
Dim objApp As New Excel.Application
Dim objBook As Excel.Workbook
Dim objSheet As Excel.Worksheet
Dim folderPath As String = Txt_GetPath.Text
For Each excelFile In Directory.EnumerateFiles(folderPath, "*.xls")
objBook = objApp.Workbooks.Open(Filename:=excelFile)
objBook.Activate()
For Each objSheet In objBook.Sheets
objSheet.Copy(After:=objBook.Sheets(1))
Next objSheet
objBook.Close()
Next
objApp.Quit()
End Sub
Public Sub Combine()
' Call the method to do the actual work
DoCombine()
' Now Let the GC clean up (twice, to clean up cycles too)
GC.Collect()
GC.WaitForPendingFinalizers()
GC.Collect()
GC.WaitForPendingFinalizers()
End Sub
Используйте метод Combine()
- он вызовет код, который вы используете в методе DoCombine()
, и убедитесь, что нетмножество копий Excel осталось запущенным на компьютере - вы увидите их в диспетчере задач, даже если их не было на экране.
(почти) всегда хорошая идея использовать Option Strict On
потому что это позволяет Visual Studio показать вам, где некоторые вещи записаны в коде.