Доброго времени суток форумчане и гости форума. Возникла необходимость печати страниц с листа в произвольном порядке (выборочно). Например как в Word: 1,3,5-7 (страницы.) Оказалось (к моему удивлению) в Excel такой возможности нет. Порывшись в Internet наткнулся на надстройку KuTools в которой такая возможность печати реализована. Но в KuTools слишком много всего, что мне не пригодится. Может, кто подскажет надстройку или макрос (макрос нежелателен в виду необходимости конвертировать файл в файл с поддержкой макросов) для реализации такой возможности в Excel?
Доброго времени суток форумчане и гости форума. Возникла необходимость печати страниц с листа в произвольном порядке (выборочно). Например как в Word: 1,3,5-7 (страницы.) Оказалось (к моему удивлению) в Excel такой возможности нет. Порывшись в Internet наткнулся на надстройку KuTools в которой такая возможность печати реализована. Но в KuTools слишком много всего, что мне не пригодится. Может, кто подскажет надстройку или макрос (макрос нежелателен в виду необходимости конвертировать файл в файл с поддержкой макросов) для реализации такой возможности в Excel?DrMini
Сообщение отредактировал DrMini - Пятница, 15.04.2022, 05:19
Макрос. Можно записать в Персонал и запускать с кнопки ПБД или ленты
[vba]
Код
Sub MoyPrint() On Error Resume Next ar = Split(Replace(Application.InputBox("Пример: 1;4-6;8-11;14", "Введите номера листов"), " ", ""), ";") If ar(0) <> "False" Then Application.DisplayAlerts = 0 For i = 0 To UBound(ar) ar1 = Split(ar(i) & "-" & ar(i), "-") s1_ = ar1(0) s2_ = ar1(1) Err.Clear ActiveWindow.SelectedSheets.PrintOut From:=s1_, To:=s2_, Copies:=1, Collate:=True If Err.Number = 0 Then t_ = t_ & vbLf & s1_ & "-" & s2_ End If Next i Application.DisplayAlerts = 1 t_ = "Напечатаны страницы " & t_ MsgBox t_ End If End Sub
[/vba]
Макрос. Можно записать в Персонал и запускать с кнопки ПБД или ленты
[vba]
Код
Sub MoyPrint() On Error Resume Next ar = Split(Replace(Application.InputBox("Пример: 1;4-6;8-11;14", "Введите номера листов"), " ", ""), ";") If ar(0) <> "False" Then Application.DisplayAlerts = 0 For i = 0 To UBound(ar) ar1 = Split(ar(i) & "-" & ar(i), "-") s1_ = ar1(0) s2_ = ar1(1) Err.Clear ActiveWindow.SelectedSheets.PrintOut From:=s1_, To:=s2_, Copies:=1, Collate:=True If Err.Number = 0 Then t_ = t_ & vbLf & s1_ & "-" & s2_ End If Next i Application.DisplayAlerts = 1 t_ = "Напечатаны страницы " & t_ MsgBox t_ End If End Sub