VBA для копирования файла из одного каталога в другой

Итак, у меня есть доступ к файлам, которые я регулярно необходимо скопировать в другую директорию, заменив последнюю версию. Я хотел бы использовать макрос Excel для достижения этой цели, а также переименовать файл в процессе.

Е. Г.

   fileName = "X:\Database\oldName.accdb"
   copyDestination = "Y:\dbstore\"
   newName = "newName.accdb"

Существует ли простой способ сделать это?

Комментарии к вопросу (2)

Этот метод даже проще, если вы'ре хорошо с меньшим количеством вариантов:

FileCopy source, destination
Комментарии (3)
Решение

Использовать соответствующие методы в скриптах.Filesystemobject, с. Тогда ваш код будет более компактен, VBScript и VB.net. Чтобы вы начали, вы'll необходимо включить:

Dim fso As Object
Set fso = VBA.CreateObject("Scripting.FileSystemObject")

Затем вы могли бы использовать

Call fso.CopyFile(source, destination[, overwrite] )

где исходный и конечный полные имена (включая пути) файла.

См https://docs.microsoft.com/en-us/office/vba/Language/Reference/user-interface-help/copyfile-method

Комментарии (2)

Одна вещь, которая вызвала у меня большую головную боль, когда, используя этот код (может повлиять на других, и я желаю, чтобы кто-то оставил комментарий, как этот здесь для меня, чтобы читать):

  • Моя цель-создать динамическую панель доступа, которая требует, чтобы ее связанные таблицы будут обновлены.
  • Я использую методы, описанные выше копию, чтобы заменить существующую связаны они с обновленной версией их.
  • Работает приведенный выше код вручную из модуля работало нормально.
  • Запуск идентичный код из формы связаны с CSV данных были ошибки во время выполнения 70 (отказано в доступе), хотя первый шаг мой код, чтобы закрыть эту форму (которая должна была разблокирована CSV-файл, так что он может быть перезаписан).
  • Теперь я верю, что, несмотря на форма закрывается, он держит устарела CSV-файл заблокированным, пока он выполняется в VBA, связанные с этой формой.

Мое решение будет выполняться код (на событие таймера) от другой скрытой форме, которая открывается с базой данных.

Комментарии (0)