Я использую приведенный ниже код для циклического переключения файлов «.csv» в каталог и переместите их в новый каталог (strRootDir и strTargetDir - это локальные переменные, которые были инициированы):Перемещение папки VBA с использованием FSO сохраняет используемую папку
Dim objFile As file
Dim objFSO As FileSystemObject: Set objFSO = New FileSystemObject
Dim objFolder As Folder: Set objFolder = objFSO.GetFolder(strRootDir)
For Each objFile In objFolder.Files
If InStr(1, objFile.Name, ".csv") Then
FileFolderExists strTargetDir, True
objFile.Move (strTargetDir)
End If
Next objFile
Set objFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
Где метод «FileFolderExists» определяется как:
Public Sub FileFolderExists(strFullPath As String, bMkDir As Boolean)
Dim bExists As Boolean
If Not Dir(strFullPath, vbDirectory) = vbNullString Then bExists = True
If Not bExists And bMkDir Then MkDir strFullPath
End Sub
Мой вопрос заключается в том, что когда-то этот процесс будет завершен, если я пытаюсь удалить каталог «strTargetDir» Я получаю сообщение об ошибке сказав, что папка используется другой программой.
Как остановить это?
Wow! Благодарю. Оба метода отлично работали. Запустил их оба и файл Name1, поскольку файл2 быстрее на 50%. – GreenyMcDuff