Как бы вы быстро сохранили один файл Excel как 200 разных имен файлов? - PullRequest
0 голосов
/ 26 февраля 2019

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

Есть ли способ быстро сохранить мой шаблон Excel в виде каждого из 200 различных имен?

Я нашел несколько макросов VBA, но они получают странные ошибки, и я не знаю достаточно VBAинтерпретировать их.

Примеры макросов, которые я пробовал (которые могут быть совершенно неосновными)

Dim fileName As String
fileName = "Path" & Range("A1:A200").Text & ".xlsx"
ActiveWorkbook.SaveAs Filename:=fileName, FileFormat:=xlNormal, 
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, 
CreateBackup:=False

Я также пробовал

Sub SaveAsA1()
ThisFile = Range("A1").Value
ActiveWorkbook.SaveAs Filename:=ThisFile
End Sub

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Вы были очень близки с вашим первым примером кода:

Sub Temp()
Dim FileNameArr As Variant, X As Long
FileNameArr = Application.Transpose(Range("A1:A200").Text)
For X = LBound(FileNameArr) To UBound(FileNameArr)
    If FileNameArr(X) <> "" Then ActiveWorkbook.SaveAs fileName:="Path" & FileNameArr(X) & ".xlsx", FileFormat:=xlNormal
Next
End Sub

Сначала прочитайте диапазон в массив, затем зациклите массив и сохраните его.

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

0 голосов
/ 26 февраля 2019

Вы можете использовать командную строку (в Windows) для копирования и переименования определенного файла.

  1. Откройте «Командную строку»
  2. Измените каталог, гдеу вас есть сохраненный файл:

    cd C: \ yourfilepath

  3. Используйте следующую команду для копирования и переименования вашего файла:

    copy Original_File.xlsx"New_File_Name_User1.xlsx"

Эта команда один раз скопирует ваш исходный файл и назовет его.

Для нескольких файлов - вы можете скопировать команду на шаге 3, вставить ее в Excel и создать столбец из всех 200 имен файлов, которые вам нужны:

copy Original_File.xlsx "New_File_Name_User1.xlsx"
copy Original_File.xlsx "New_File_Name_User2.xlsx"
copy Original_File.xlsx "New_File_Name_User3.xlsx"
copy Original_File.xlsx "New_File_Name_User4.xlsx"
copy Original_File.xlsx "New_File_Name_User5.xlsx"
...
copy Original_File.xlsx "New_File_Name_User200.xlsx"

Для шага 3 скопировать все200 команд в вашем файле Excel - и вставьте их в командную строку.

Это скопирует исходный файл 200 раз и назовет их соответствующим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...