Sub Move_File() Dim sFileName As String, sNewFileName As String sFileName = "C:\новая папка\this_file_001" 'имя исходного файла sNewFileName = "D:\новая папка\02\" 'имя файла для перемещения. Директория(в данном случае диск D) должна существовать If Dir(sFileName, 16) = "" Then MsgBox "Нет такого файла", vbCritical, "Ошибка": Exit Sub Name sFileName As sNewFileName 'перемещаем файл MsgBox "Файл перемещен", vbInformation, "www.excel-vba.ru"End Sub
Sub Move_File() Dim sFileName As String, sNewFileName As String Dim iRow&: iRow = 1 Do While Cells(iRow, 4) <> "" sFileName = Cells(iRow, 4) 'имя исходного файла If Dir(sFileName, 16) <> "" Then sNewFileName = Cells(iRow, 1) & "\" & Dir(sFileName, vbNormal + vbHidden + vbSystem) 'имя файла для перемещения. Директория должна существовать Name sFileName As sNewFileName 'перемещаем файл end if Loop MsgBox "Файл перемещен", vbInformation, "www.excel-vba.ru"End Sub
Sub Move_File() Dim sFileName As String, sNewFileName As String Dim iRow&: iRow = 1 On Error Resume Next Do While Cells(iRow, 4) <> "" sFileName = Cells(iRow, 4) & ".xls" 'имя исходного файла If Dir(ThisWorkbook.Path & "\" & sFileName, 16) <> "" Then' sNewFileName = Cells(iRow, 1) & "\" & Dir(sFileName, vbNormal + vbHidden + vbSystem) 'имя файла для перемещения. Директория должна существовать sNewFileName = ThisWorkbook.Path & "\" & Cells(iRow, 1) & "\" & sFileName 'имя файла для перемещения. Директория должна существовать If Dir(ThisWorkbook.Path & "\" & Cells(iRow, 1), vbDirectory) = "" Then MkDir (ThisWorkbook.Path & "\" & Cells(iRow, 1)) ' создаем отсутствующую папку Name ThisWorkbook.Path & "\" & sFileName As sNewFileName 'перемещаем файл End If iRow = iRow + 1 DoEvents ' что бы прервать при зависании Loop MsgBox "Файлы перемещены", vbInformation, "www.excel-vba.ru"End Sub
Sub CopyFiles()Dim aData()'Dim fso As ObjectDim sPath As String, Folder As String, sFName As StringDim i As LongConst sPachFiles As String = "C:\TestFiles\"Const sNewPach As String = "C:\TempFolder\" aData = Worksheets("Лист1").Range("A1:D9").Value' Set fso = CreateObject("scripting.FileSystemObject") With Application: .ScreenUpdating = False: .DisplayAlerts = False: End With If Dir(sNewPach, vbDirectory) = "" Then MkDir sNewPach ' создаем, если нет For i = 1 To UBound(aData) sFName = sPachFiles & aData(i, 4) & ".xlsx" If Dir(sFName, 16) <> "" Then ' если файл есть sFolder = sNewPach & aData(i, 1) & "\" If Dir(sFolder, vbDirectory) = "" Then MkDir sFolder' fso.CopyFile sFName, sFolder & aData(i, 4) & ".xlsx", False Name sFName As sFolder & aData(i, 4) & ".xlsx" End If Next i ' Set fso = Nothing With Application: .ScreenUpdating = True: .DisplayAlerts = True: End With MsgBox "OK", 64, ""End Sub
Name sFName As sFolder & aData(i, 4) & ".xlsx"