Здравствуйте форумчане и гости форума. Нашёл в Internet`e пример, как при помощи VBA запретить отправку на печать определённого листа с сообщением.
[vba]
Код
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim WsName As String WsName = "Лист1" For Each xWs In Application.ActiveWorkbook.Windows(1).SelectedSheets If xWs.Name = WsName Then MsgBox ("Этот лист печатать нельзя") Cancel = True End If Next End Sub
[/vba]
Подскажите пожалуйста, как подправить код, что бы можно было запретить вывод на печать не один лист, а (в моём случае) четырёх листов идущих не подряд.
Здравствуйте форумчане и гости форума. Нашёл в Internet`e пример, как при помощи VBA запретить отправку на печать определённого листа с сообщением.
[vba]
Код
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim WsName As String WsName = "Лист1" For Each xWs In Application.ActiveWorkbook.Windows(1).SelectedSheets If xWs.Name = WsName Then MsgBox ("Этот лист печатать нельзя") Cancel = True End If Next End Sub
[/vba]
Подскажите пожалуйста, как подправить код, что бы можно было запретить вывод на печать не один лист, а (в моём случае) четырёх листов идущих не подряд.DrMini
Файл скачать не могу, блокировка макросов. Так нарисовал [vba]
Код
Private Sub Workbook_BeforePrint(Cancel As Boolean) Set slov = CreateObject("Scripting.Dictionary") 'объявляем словарь With slov 'Для него For Each NoPr In Array("Лист1", "Лист3", "Лист5") 'бегаем по массиву aaa = .Item(NoPr) 'заполняем словарь ключами Next NoPr For Each xWs In Application.ActiveWorkbook.Windows(1).SelectedSheets If .exists(xWs.Name) Then ' если есть в словаре MsgBox "Лист " & xWs.Name & " печатать нельзя" Cancel = True End If Next End With End Sub
[/vba]
Файл скачать не могу, блокировка макросов. Так нарисовал [vba]
Код
Private Sub Workbook_BeforePrint(Cancel As Boolean) Set slov = CreateObject("Scripting.Dictionary") 'объявляем словарь With slov 'Для него For Each NoPr In Array("Лист1", "Лист3", "Лист5") 'бегаем по массиву aaa = .Item(NoPr) 'заполняем словарь ключами Next NoPr For Each xWs In Application.ActiveWorkbook.Windows(1).SelectedSheets If .exists(xWs.Name) Then ' если есть в словаре MsgBox "Лист " & xWs.Name & " печатать нельзя" Cancel = True End If Next End With End Sub