Данная функция формирует (создаёт) новую книгу Excel с одним листом (на основании шаблона - листа sh_template), после чего сохраняет новый файл по пути NewFilename$
Если путь не указан, сохранения нового файла не происходит.
Function NewWorksheet(ByRef sh_template As Worksheet, Optional ByVal NewFilename$) As Worksheet Application.ScreenUpdating = False: On Error Resume Next: Err.Clear shtv = sh_template.Visible: sh_template.Visible = xlSheetVisible If Err Then MsgBox "Не удалось отобразить лист шаблона", vbCritical, "Ошибка в функции NewWorksheet ": End sh_template.Copy: DoEvents sh_template.Visible = shtv If Err Then MsgBox "Не удалось скопировать лист шаблона", vbCritical, "Ошибка в функции NewWorksheet ": End If ActiveWorkbook.Worksheets.Count > 1 Then MsgBox "2: Не удалось скопировать лист шаблона", vbCritical, "Ошибка в функции NewWorksheet ": End If ActiveWorkbook.Name = ThisWorkbook.Name Then MsgBox "3: Не удалось скопировать лист шаблона", vbCritical, "Ошибка в функции NewWorksheet ": End Set NewWorksheet = ActiveWorkbook.Worksheets(1) If NewWorksheet.Name <> sh_template.Name Then MsgBox "4: Не удалось скопировать лист шаблона", vbCritical, "Ошибка в функции NewWorksheet ": End Err.Clear: If Len(NewFilename$) Then ActiveWorkbook.SaveAs NewFilename$, xlWorkbookNormal If Err Then MsgBox "Не удалось сохранить новый файл по пути" & vbNewLine & _ """" & NewFilename$ & """", vbExclamation, "Ошибка в функции NewWorksheet " End Function
Пример использования:
Dim sh As Worksheet: Set sh = NewWorksheet(sht, НовыйПутьКФайлу$)
Комментарии
При настройке листа "файл"=>"параметры страницы" можно задать принтер, и в его свойствах сделать настройки печати текущего листа. После сохранения файла, эти настройки куда то прописываются, привязанные только к этому листу. Если посмотреть файл .xls текстовом виде, то там можно увидеть кусок текста, с сохраненными настройками принтера.
Конкретно: имя принтера и включенный дуплекс.
вопрос: как добраться до этих свойств? , потому-что в .PageSetup этого нет, а при большом количестве создаваемых файлов, которые в автомате (.PrintOut) идут на печать, - руками все делать - проблема.
Спасибо!
как сделать тоже самое но с 2 листами
Вот пример использования этой функции:
(код самой функции расположите под этим макросом)
Не могу запустить
Отправить комментарий