Страницы: 1
RSS
Копирование файлов в облако
 
Необходимо каждый день копировать в облако несколько файлов. Подсмотрел в интернете код тут. Немного подправил его. Но он почему то не работает.
Ошибки не выскакивают, но и файлы не копируются. Помогите поправить. Спасибо
Код
Sub Copy_File()
    Dim sFileName1, sFileName2, sFileName3, sFileName4, sFileName5, sFileName6 As String
    Dim sNewFileName1, sNewFileName2, sNewFileName3, sNewFileName4, sNewFileName5, sNewFileName6 As String
    Dim ПутьКРабочемуСтолу, d, PUT_FILE As String

    ПутьКРабочемуСтолу = CreateObject("WScript.Shell").SpecialFolders("Desktop")
    d = Format(Date, "DDMM") ' присваиваем переменной d значение текущего дня и месяца
    PUT_FILE = ПутьКРабочемуСтолу & "\MyBook " & d

    sFileName1 = PUT_FILE & "\Прайс оптовый.xlsx"    'имя файла для копирования
    sFileName2 = PUT_FILE & "\Основной прайс.xlsx"    'имя файла для копирования
    sFileName3 = PUT_FILE & "\Прайс как онлайнер.xlsx"    'имя файла для копирования
    sFileName4 = PUT_FILE & "\Прайс под заказ.xlsx"    'имя файла для копирования
    sFileName5 = PUT_FILE & "\Прайс с мин. ценами.xlsx"    'имя файла для копирования
    sFileName6 = PUT_FILE & "\Смарт прайс.xlsx"    'имя файла для копирования
    sNewFileName1 = "G:\Мой диск\Оптовый прайс\Прайс оптовый.xlsx"    'имя копируемого файла. Директория(в данном случае диск G) должна существовать
    sNewFileName2 = "G:\Мой диск\Прайсы\Основной прайс.xlsx"    'имя копируемого файла. Директория(в данном случае диск G) должна существовать
    sNewFileName3 = "G:\Мой диск\Прайсы\Прайс как онлайнер.xlsx"    'имя копируемого файла. Директория(в данном случае диск G) должна существовать
    sNewFileName4 = "G:\Мой диск\Прайсы\Прайс под заказ.xlsx"    'имя копируемого файла. Директория(в данном случае диск G) должна существовать
    sNewFileName5 = "G:\Мой диск\Прайсы\Прайс с мин. ценами.xlsx"    'имя копируемого файла. Директория(в данном случае диск G) должна существовать
    sNewFileName6 = "G:\Мой диск\Прайсы\Смарт прайс.xlsx"    'имя копируемого файла. Директория(в данном случае диск G) должна существовать
    
    FileCopy sFileName1, sNewFileName1 'копируем файл
    FileCopy sFileName2, sNewFileName2 'копируем файл
    FileCopy sFileName3, sNewFileName3 'копируем файл
    FileCopy sFileName4, sNewFileName4 'копируем файл
    FileCopy sFileName5, sNewFileName5 'копируем файл
    FileCopy sFileName6, sNewFileName6 'копируем файл
End Sub

в конечной папке файлы с таким названием есть, их нужно заменить
 
Код
If Dir("C:\test.xlsx") <> "" Then Kill "C:\test.xlsx"
 
удалять файлы нельзя
в первоисточнике файл должен остаться
в конечном - это гуглдрайв - удалять файл нельзя, нужно именно заменять, т.к. как ни странно при замене публичная ссылка остается действовать, а если файл удаляю и на его место другой с таким же названием - то нужно делать новую публичную ссылку
 
Синтаксис
объект. CopyFile Source, Destination, [ overwrite ]
 
заменил
Код
FileCopy sFileName1, sNewFileName1 'копируем файл

на
Код
FileSystemObject.CopyFile sFileName1, sNewFileName1, [True] 'копируем файл

но это не помогло, на этой строке выскакивает ошибка
пробовал и без последнего элемента, синтаксис брал тут
я самоучка, может что то не учёл? менял одну строку
 
Не силен в vb* но кажется нужно так:
Код
FSO = CreateObject(“Scripting.FileSystemObject”)

FSO.CopyFile sFileName1, sNewFileName1, 1 
Изменено: bigorq - 24.09.2020 21:27:45
 
заменил на
Код
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile sFileName1, sNewFileName1, 1 'копируем файл

но файл по прежнему не копируется, и ошибка не выскакивает
просто макрос выполнился, но ничего не скопировалось
Изменено: Олег - 24.09.2020 21:43:51
 
А если 1 на 0 поменять, ругнется, что файл уже существует?
 
поменял 1 на 0
run error 58 - на эту строку
 
Правильно ругается. А как Вы определяете, что файлы не скопированы? И если в целевой папке их удалить, то тогда копирование нормально происходит?
 
Вчера наверное был какой то сбой, сегодня всё прекрасно работает
Спасибо всем откликнувшимся
Страницы: 1
Наверх