Настройка всех листов Excel на определенном уровне масштабирования

У меня более двадцати листов в книге (файле) Excel. Есть ли какой-нибудь фрагмент кода или команда, которую я мог бы применить/использовать, чтобы все листы можно было сбросить, скажем, до уровня масштабирования 85%?


person Regmi    schedule 10.05.2011    source источник


Ответы (2)


Sub SetZoom()
    Dim ws As Worksheet

    For Each ws In Worksheets
        ws.Select
        ActiveWindow.Zoom = 85 ' change as per your requirements
    Next ws
End Sub

Кстати, если вы просто выберете все рабочие листы в своей книге с помощью вкладок, вы можете установить масштаб на 85%, и он будет применяться ко всем рабочим листам.

person Alex P    schedule 10.05.2011
comment
@MoritzSchmitzv.Hülst Используйте VBA =P - person ADTC; 13.11.2015
comment
Хотя это решение по-прежнему требует, чтобы вы использовали .Select, вы можете обновить масштаб для всех листов сразу без зацикливания: /2727437 - person Marcucciboy2; 04.09.2018

Sub SetZoom()

Dim ws As Worksheet
Application.ScreenUpdating = False    'Optional
For Each ws In ActiveWorkbook.Worksheets
    ws.Activate
    ActiveWindow.Zoom = 85
Next
Application.ScreenUpdating = True

End Sub

Этот код похож на приведенный выше, но нет необходимости выбирать все рабочие листы в книге перед запуском макроса. Вместо использования ws.Select и Next ws, которые не работают правильно, если вы не выберете рабочие листы, измените на ws.Activate и Next, чтобы установить масштаб для всех листов. При желании ScreenUpdating можно отключить для книги с большим количеством листов.

person Felipe Ribeiro    schedule 31.10.2019
comment
Хотя этот код может помочь с вопросом, лучше включить некоторый контекст, объясняющий, как он работает и когда его использовать. Ответы только на код, как правило, менее полезны в долгосрочной перспективе. Дополнительную информацию см. в разделе Как написать хороший ответ?. - person Klaus Gütter; 31.10.2019
comment
Клаус спасибо за отзыв! - person Felipe Ribeiro; 31.10.2019