Страницы: Пред. 1 2
RSS
Перемещение файлов через VBA
 
Цитата
написал:
Цитата
Артем Черкасов написал:
fso.MoveFile
Да, в 65 строчке кода, я именно эту команду и применяю .... но, не работает (((((((
В переменной avFile у меня есть полный путь к файлу включая его расширение, я считываю его MsgBox'ом в 57 строчке!
Всё верно

Потому что у MoveFile есть два аргумента, source - источник и destination - назначение
Задаю в источнике переменную, предполагая, что оттуда будет взят полный путь к файлу ну и сам файл, потому что исходя из инструкции к методу MoveFile там должен быть именно полный путь ну и уже просто явно указал путь к папке назначению, в этой же папке папка с именем 1

Я уже после 1 ставил \ дополнительно, думал не понимает!
Не работает, файл не перемещается!

И самое что, макрос даже на отладке не даёт никакой ошибки
Он просто проходит данный шаг и всё
 
Цитата
Артем Черкасов написал:
И самое что, макрос даже на отладке не даёт никакой ошибки
Как заказывали.
Цитата
Артем Черкасов написал:
On Error Resume Next
При ошибке выполнять следующую строку.
 
Я понял свою ошибку!
Нужно было писать не так

Код
fso.MoveFile avFile, ThisWorkbook.Path & "\" & folderNew.Value

а так

где sourceFileName - это объявленная переменная

Код
Dim sourceFileName As String
    sourceFileName = bookclient.Name
bookclient.Close

fso.MoveFile sourceFileName, (ThisWorkbook.Path & "\" & folderNew.Value)

но вот с путём сохранения по прежнему остаётся беда!
не могу сделать так, чтобы он перемещал файл в нужную мне папку, уже созданную причем
Изменено: Артем Черкасов - 29.06.2022 17:34:36
 
всё! разобрался

объявил ещё одну переменную с типом строка и скомпилировал там путь к нужной папке из других данных
получилось вот так
Код
            bookserver.Worksheets("Данные заказа").Activate
            Application.DisplayAlerts = False

                Dim sourceFileName As String
                    sourceFileName = bookclient.Name

            bookclient.Close
        
        'Создаем папку в этой же дирректории что и bookserver
        Dim fso As Object
        Set fso = CreateObject("Scripting.FilesystemObject")
        Set folderNew = Range("C45")
            If Not fso.FolderExists(ThisWorkbook.Path & "\" & folderNew.Value) Then
                fso.CreateFolder (ThisWorkbook.Path & "\" & folderNew.Value)
            End If
        Set fso = CreateObject("Scripting.FilesystemObject")
            On Error Resume Next
            Dim newFolder As String
                newFolder = ThisWorkbook.Path + "\" + folderNew.Value + "\"

            fso.MoveFile sourceFileName, newFolder

Страницы: Пред. 1 2
Наверх