2012-02-23 2 views
2

Хорошо, поэтому мне никогда не приходилось ничего делать в VBA, где я был НЕОБХОДИМО активировать лист или выбрать ячейку. Но теперь я пытаюсь выяснить, как сделать Zoom до 100% на кучу листок, и весь код, который я вижу (результаты Google, включая ответы с этого сайта), кажется, сначала выбирает лист:Excel 2007 VBA Масштабирование (без использования select?)

ActiveWindow.Zoom = 100 

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

Sht.PageSetup.Zoom = 100 

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

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

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

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

ответ

3

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

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

Application.ScreenUpdating = False 

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

Application.ScreenUpdating = True 
-1

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

Смежные вопросы