Excel 2007 VBA Масштабирование (без использования select?)

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

ActiveWindow.Zoom = 100 

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

 Sht.PageSetup.Zoom = 100 

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

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

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

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

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

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

 Application.ScreenUpdating = False 

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

 Application.ScreenUpdating = True 

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

  • Как отправить книгу Excel в качестве ответа?
  • как удалить забытый пароль excel для открытия файла?
  • Excel не отвечает после запуска макроса
  • Замена даты на прошлой неделе на этой неделе
  • Как оптимизировать открытие и закрытие книг Excel для извлечения данных для ускорения работы
  • ошибка времени выполнения 1004 в. Обновить BackgroundQuery vba
  • Excel - Редактировать Выберите столбцы по общему значению
  • Как отобразить формат mm: ss не как DateTime, без указателя нуля?
  • Формулы массива и PasteSpecial: = Форматы
  • Более быстрый способ импорта таблицы Excel в массив с помощью ADO
  • Несколько Range.Find () в VBA
  • Давайте будем гением компьютера.