Excel 2007 VBA Zooming (без использования выбора?) - PullRequest
2 голосов
/ 23 февраля 2012

Хорошо, поэтому мне никогда не приходилось делать что-либо в VBA, где мне было НУЖНО активировать лист или выбрать ячейку.Но теперь я пытаюсь выяснить, как сделать масштаб до 100% на нескольких листах, и весь код, который я вижу (результаты Google, включая ответы с этого сайта), кажется, сначала выбирает лист:

ActiveWindow.Zoom = 100 

Но я нашел некоторый код в OzGrid, который, по-видимому, подразумевает, что это можно сделать без предварительного выбора листа:

Sht.PageSetup.Zoom = 100

(хотя выше у нас есть Set Sht = ActiveSheet) Iпопытался сделать

Set Sht = ThisWorkbook.Worksheets("Sheet1")
Sht.PageSetup.Zoom = 150

, но ничего не происходит ... буквально ничего.

Итак, возможно ли это?Или я должен активировать рабочий лист, прежде чем смогу выполнить масштабирование?Я читал так много раз, что это плохая практика программирования, если только вам это не нужно.

Ответы [ 2 ]

3 голосов
/ 23 февраля 2012

Да, я считаю, что масштабирование влияет только на активный лист.

Однако, если вы не хотите «видеть», как каждый лист активируется и масштабируется, как это происходит, вы можете добавить строку

Application.ScreenUpdating = False

перед вашим кодом увеличения и затем после того, как это сделано:

Application.ScreenUpdating = True
0 голосов
/ 30 августа 2017

Настройка Application.Screenupdating = False не решит вашу проблему. Если вы выберете лист или активируете лист, для Application.screenupdating будет установлено значение true.

...