Страницы: 1
RSS
Создание книги (xlsm) по шаблону (xltm) с помощью VBA
 
Доброго времени...
Просматривал материал в сети, но не нашел, на мой взгляд, самого простого варианта действий.
Требуется при работе в файле, например, "Книга1.xlsm" создать файл "Книга2.xlsm" по шаблону "Шаблон.xltm" с помощью VBA и скопировать из "Книга1.xlsm" в "Книга2.xlsm", какие-либо данные. Для примера - значение какой-нибудь одной ячейки. Подскажите, пожалуйста, какой должна быть самая простая, базовая процедура на VBA.
 
Может, как-то так? (рекордер включил)
Код
Sub Макрос1()
' Макрос1 Макрос
    Workbooks.Add Template:= _
        "C:\Program Files (x86)\Microsoft Office\Templates\1049\BillingStatement.xltx"
End Sub

Потом еще можно Activeworkbook.SaveAs добавить...
Кому решение нужно - тот пример и рисует.
 
Спасибо.
Буду экспериментировать дальше.
 
Вроде видел на просторах инета варианты решений, как не только создавать *xlsm файлы, но и макросы в них с ячеек листа.
 
Получился вот такой код:
Код
Sub usCreateFile()
Dim usTemplatePath As String
usTemplatePath = Worksheets("ИМЯЛИСТА").Range("C17")
    On Error Resume Next
    If IsEmpty(Range("C17")) Then
        Msg = "Путь к шаблону не задан"
        MsgBox Msg, , "Сообщение об ошибке"
        Exit Sub
        Else
        Workbooks.Add Template:=usTemplatePath
        If Err.Number = 1004 Then
            Msg = "По указанному пути шаблон не найден"
            MsgBox Msg, , "Сообщение об ошибке"
            Err.Clear
            Exit Sub
        End If
    End If
ActiveWorkbook.SaveAs Filename:="C:\Users\%USERNAME%\Desktop\" & "1" & ".xlsm"
End Sub
Адрес расположения шаблона берет из ячейки и создает соответствующий файл.
Если ячейка пустая или в ней какая-нибудь ерунда кроме адреса, то ни чего не делает и выдает сообщение об ошибке.
Но как теперь выполнить процедуру Activeworkbook.SaveAs ? У меня она не срабатывает до конца.
Выдает только запрос на сохранение.
 
Цитата
DmitriyBastr написал:
как теперь выполнить процедуру Activeworkbook.SaveAs ?
Запишите это сохранение макрорекордером - увидите, в чём разница.
 
Код
Sub макрос()
    ChDir "C:\Users\%...%\Desktop"
    ActiveWorkbook.SaveAs Filename:="C:\Users\%...%\Desktop\Книга1.xlsm", _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
При записи "Сохранить Как" получился такой макрос ↑
Поясните, пожалуйста, какую роль здесь играет ChDir?
 
ChDir можно пренебречь. Обратите внимание, что Вы раньше пытались при сохранении Как указывать только имя и расширение файла. А формат не указывали.
 
Имеете в виду
Код
FileFormat:=xlOpenXMLWorkbookMacroEnabled
 
Да.
 
А за что отвечает
Код
CreateBackup:=False
 
Я справка или переводчик? ) Не создавать Бэкап файл (резервную копию).
 
... но и без этого нормально
Страницы: 1
Читают тему
Наверх