Макрос для копирования файлов из столбцов excel

Программирование на Visual Basic for Applications
John_mc
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 112
Зарегистрирован: 15.06.2002 (Сб) 6:18
Откуда: Russia, Новосибирск

Макрос для копирования файлов из столбцов excel

Сообщение John_mc » 10.12.2019 (Вт) 2:49

Есть 2 столбца, один - с именем ученика, второй - с наименованием файла к его фотографии.

То есть нужен макрос, который создаёт папки из столбца 1 (имя ученика)
И в эти папки копирует файли с картинками.

На просторах интернета нашёл код, но не работает почему-то.
Подскажите, что нужно исправить и безопасен ли он?

Код: Выделить всё
Sub Макрос()

    Dim путь As String, ИмяФайла As String, ПапкаГород As String
    Dim lr As Long, i As Long
   
   
    '1. Запись в переменную пути.
    путь = "C:\Users\User\Desktop\Фото"
   
    '2. Поиск последней строки, в которой есть данные.
        ' End не ищет в скрытых строках.
    lr = Cells(Rows.Count, "A").End(xlUp).Row
   
    '3. Перемещение файлов в указанную папку.
    ' Движение по строкам со второй по последнюю.
    For i = 2 To lr
   
        '1) Копирование данных из экселя в переменные для удобства чтения кода.
        ' Запись города в переменную.
        ПапкаГород = Cells(i, "A").value
        ' Запись имени файла в переменную.
        ИмяФайла = Cells(i, "B").value
       
        '2) Создание папки.
        On Error Resume Next
        MkDir путь & "\" & ПапкаГород
        On Error GoTo 0
       
        '3) Перемещение файла.
        ' Копирование файла.
        FileCopy путь & "\" & ИмяФайла, путь & "\" & ПапкаГород & "\" & ИмяФайла
        ' Удаление файла.
        Kill путь & "\" & ИмяФайла
       
    Next i
   
    '4. Сообщение.
    MsgBox "Готово.", vbInformation
   
End Sub

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1940
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Макрос для копирования файлов из столбцов excel

Сообщение ger_kar » 10.12.2019 (Вт) 18:56

Во первых для вставки кода нужно использовать тег 'Code'. Это то что касается оформления поста.
Далее по коду, а что конкретно не работает то? Папки не создаются? В чем конкретно заключается проблема?
Вообще приведенный код совершенно не универсальный и рассчитан на конкретный случай его применения.
У вас путь "C:\Users\User\Desktop\Фото" вообще существует?
У вас пользователь от которого производится запуск макроса обладает правами на запись в папку по указанному пути?
Бороться и искать, найти и перепрятать


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList