Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/копирование файлов в нужные папки по данным в таблице эксель - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
копирование файлов в нужные папки по данным в таблице эксель
CDorian18092044 Дата: Четверг, 14.12.2017, 00:54 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте!
Помогите решить проблему копирования файлов из общей папки в много других папок названия которых указаны в таблице. Составил код, но он дает ошибку. :'(
[vba]
Код
Sub перенос_файлов
    Dim objFSO As Object, objFile As Object
    Dim sFileName As String, sNewFileName As String
    Dim sDirName As String
    Dim sPosName As String
    i_n& = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To i_n
    sPosName = Cells(i, 5)
    strDirName = Cells(i, 1)
    sFileName = "F:\Макросы\Пример\" & sPosName  
    sNewFileName = "F:\Макросы\Пример\" & sDirName & "\" & sPosName   
    If Cells(i, 5) = "" Then
        i = i + 1
    Else  
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set objFile = objFSO.GetFile(sFileName)
        objFile.Move sNewFileName
    End If
    Next
End Sub
[/vba]
все файлы находятся в одной папке и для каждой позиции создана своя куда и надо скопировать эти файлы как указано в таблице
Может быть есть способ проще? %)
К сообщению приложен файл: _123.xlsx (9.0 Kb)


CDorian18092044
 
Ответить
СообщениеЗдравствуйте!
Помогите решить проблему копирования файлов из общей папки в много других папок названия которых указаны в таблице. Составил код, но он дает ошибку. :'(
[vba]
Код
Sub перенос_файлов
    Dim objFSO As Object, objFile As Object
    Dim sFileName As String, sNewFileName As String
    Dim sDirName As String
    Dim sPosName As String
    i_n& = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To i_n
    sPosName = Cells(i, 5)
    strDirName = Cells(i, 1)
    sFileName = "F:\Макросы\Пример\" & sPosName  
    sNewFileName = "F:\Макросы\Пример\" & sDirName & "\" & sPosName   
    If Cells(i, 5) = "" Then
        i = i + 1
    Else  
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set objFile = objFSO.GetFile(sFileName)
        objFile.Move sNewFileName
    End If
    Next
End Sub
[/vba]
все файлы находятся в одной папке и для каждой позиции создана своя куда и надо скопировать эти файлы как указано в таблице
Может быть есть способ проще? %)

Автор - CDorian18092044
Дата добавления - 14.12.2017 в 00:54
Wasilich Дата: Четверг, 14.12.2017, 01:30 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Попробуйте так. Не проверял.
[vba]
Код
For i = 2 To i_n
    If Cells(i, 5) <> "" Then
        sPosName = Cells(i, 5)
        strDirName = Cells(i, 1)
        sFileName = "F:\Макросы\Пример\" & sPosName  
        sNewFileName = "F:\Макросы\Пример\" & sDirName & "\" & sPosName   
        FileCopy sFileName, sNewFileName
    End If
Next
[/vba]
 
Ответить
СообщениеПопробуйте так. Не проверял.
[vba]
Код
For i = 2 To i_n
    If Cells(i, 5) <> "" Then
        sPosName = Cells(i, 5)
        strDirName = Cells(i, 1)
        sFileName = "F:\Макросы\Пример\" & sPosName  
        sNewFileName = "F:\Макросы\Пример\" & sDirName & "\" & sPosName   
        FileCopy sFileName, sNewFileName
    End If
Next
[/vba]

Автор - Wasilich
Дата добавления - 14.12.2017 в 01:30
InExSu Дата: Пятница, 15.12.2017, 23:29 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 650
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Привет!
У Вас strDirName и sDirName не путаются?


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
СообщениеПривет!
У Вас strDirName и sDirName не путаются?

Автор - InExSu
Дата добавления - 15.12.2017 в 23:29
Wasilich Дата: Воскресенье, 17.12.2017, 09:00 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Ну вот. А я и не заметил, что переменная определяется как
strDirName а используетя как sDirName.
Правильно так надо бы. :)
[vba]
Код
For i = 2 To i_n
If Cells(i, 5) <> "" Then
sPosName = Cells(i, 5)
sDirName = Cells(i, 1)
sFileName = "F:\Макросы\Пример\" & sPosName
sNewFileName = "F:\Макросы\Пример\" & sDirName & "\" & sPosName
FileCopy sFileName, sNewFileName
End If
Next
[/vba]


Сообщение отредактировал Wasilich - Воскресенье, 17.12.2017, 11:29
 
Ответить
СообщениеНу вот. А я и не заметил, что переменная определяется как
strDirName а используетя как sDirName.
Правильно так надо бы. :)
[vba]
Код
For i = 2 To i_n
If Cells(i, 5) <> "" Then
sPosName = Cells(i, 5)
sDirName = Cells(i, 1)
sFileName = "F:\Макросы\Пример\" & sPosName
sNewFileName = "F:\Макросы\Пример\" & sDirName & "\" & sPosName
FileCopy sFileName, sNewFileName
End If
Next
[/vba]

Автор - Wasilich
Дата добавления - 17.12.2017 в 09:00
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!