Я пытаюсь скопировать книгу Excel из папки X в папку Y, а в случае, если файл этого имени уже существует в папке Y, файл не перезаписывается но новому файлу присваивается суффикс '- Copy', '- Copy (2)' и т. д. - по существу, воссоздание ручного процесса для копирования и вставки одного и того же файла в папку.Сохранение копии существующей книги Excel без ее перезаписи
я бы подумал, что было бы функция, которая позволяет это сделать, но ничего я пытался до сих пор, кажется, чтобы соответствовать конкретным требованиям:
Workbook.SaveAs
предлагает пользователю сообщение с запросом о файл должен быть замененWorkbook.SaveCopyAs
просто перезаписывает файл без запросаThe
FileSystemObject.CopyFile
метод имеет «перезаписать» пар ameter, однако это просто ошибки, если значение ЛОЖЬ и файл уже существует, который, как ожидается, поведение в соответствии с Microsoft website
Это не было бы трудно создать счетчик, который получает приращение на основе количества существующих файлов в выбранной папке (.xls (1), .xls (2) и т. д.), но я надеялся, что может быть более прямой подход, чем этот.
Пойдите со своим инстинктом здесь. ИМО - лучшее решение - иметь свой собственный счетчик здесь и изменить файлы имен. (Я не знаю, есть ли функция vba для этой «работы», и, честно говоря, я буду удивлена, если она существует) – Blenikos
Используйте метод 'FileSExject'' FileSystemObject', а затем используйте 'regex' или' mid '/' instr', чтобы получить (x) номер, если он есть и увеличится. –