Поради щодо швидкості Excel 2016 VBA

VBA для Excel 2016 працює швидко, але не завжди достатньо швидко. (Комп’ютерні програми ніколи не бувають достатньо швидкими.) Продовжуйте читати, щоб знайти приклади програмування, які можна використовувати для прискорення роботи макросів.

Вимкнення оновлення екрана

Виконуючи макрос, ви можете сидіти і спостерігати за всіма екранними діями, які відбуваються в макросі. Хоча це може бути повчальним, після того як макрос запрацює належним чином, це часто дратує і може значно сповільнити роботу макроса. На щастя, ви можете вимкнути оновлення екрана, яке зазвичай відбувається під час виконання макросу. Щоб вимкнути оновлення екрана, скористайтеся такою інструкцією:

Application.ScreenUpdating = False

Якщо ви хочете, щоб користувач бачив, що відбувається в будь-який момент під час макросу, скористайтеся наступним оператором, щоб знову ввімкнути оновлення екрана:

Application.ScreenUpdating = True

Щоб продемонструвати різницю в швидкості, виконайте цей простий макрос, який заповнює діапазон числами:

Sub FillRange()
  Dim r як довгий, c як довгий
  Приглушене число як довго
  Число = 0
  Для r = 1 до 50
    Для c = 1 до 50
      Число = Число + 1
      Клітинки(r, c).Вибрати
      Клітинки(r, c).Значення = число
    Далі c
  Далі р
Кінець суб

Ви бачите, що кожна клітинка вибирається, а значення вводиться в клітинки. Тепер вставте такий оператор на початку процедури та виконайте його знову:

Application.ScreenUpdating = False

Діапазон заповнюється набагато швидше, і ви не побачите результату, поки макрос не завершить роботу, а оновлення екрана (автоматично) не буде встановлено на True.

Коли ви налагоджуєте код, виконання програми іноді закінчується десь посередині, не ввімкнувши оновлення екрана. Це іноді призводить до того, що вікно програми Excel повністю не відповідає. Вихід із цього замороженого стану простий: поверніться до VBE та виконайте такий оператор у вікні «Негайне»:

Application.ScreenUpdating = True

Вимкнення автоматичного обчислення

Якщо у вас є робочий аркуш із багатьма складними формулами, ви можете виявити, що можна значно прискорити роботу, встановивши режим обчислення вручну під час виконання макросу. Коли макрос завершиться, поверніть режим обчислення на автоматичний.

Наступний оператор встановлює ручний режим обчислення Excel:

Application.Calculation = xlCalculationManual

Виконайте наступний оператор, щоб встановити автоматичний режим обчислення:

Application.Calculation = xlCalculationAutomatic

Якщо у вашому коді використовуються клітинки з результатами формули, вимкнення обчислень означає, що клітинки не будуть перераховані, якщо ви явно не вкажете це зробити Excel!

Видалення цих неприємних повідомлень

Як відомо, макрос може автоматично виконувати ряд дій. У багатьох випадках ви можете запустити макрос, а потім потусуватися в кімнаті відпочинку, поки Excel робить свою справу. Однак деякі операції Excel відображають повідомлення, на які потрібна відповідь людини. Такі типи повідомлень означають, що ви не можете залишати Excel без нагляду, поки він виконує ваш макрос — якщо ви не знаєте секретного трюка.

Поради щодо швидкості Excel 2016 VBA

Ви можете вказати Excel не відображати ці типи сповіщень під час запуску макросу.

Секретний трюк, щоб уникнути цих повідомлень попередження, полягає в тому, щоб вставити такий оператор VBA у ваш макрос:

Application.DisplayAlerts = False

Excel виконує операцію за замовчуванням для цих типів повідомлень. У разі видалення аркуша операцією за замовчуванням є Видалити. Якщо ви не впевнені, яка операція за замовчуванням, виконайте тест, щоб побачити, що відбувається.

Коли процедура закінчується, Excel автоматично скидає властивість DisplayAlerts на True. Якщо вам потрібно знову ввімкнути сповіщення до завершення процедури, скористайтеся цим оператором:

Application.DisplayAlerts = True

Спрощення посилань на об’єкти

Як ви, напевно, вже знаєте, посилання на об’єкти можуть стати дуже довгими. Наприклад, повне посилання на об’єкт Range може виглядати так:

Робочі зошити(“MyBook.xlsx”).Робочі аркуші(“Аркуш1”) _
  .Range("Процентна ставка")

Якщо ваш макрос часто використовує цей діапазон, ви можете створити об’єктну змінну за допомогою команди Set. Наприклад, наступна інструкція призначає цей об'єкт Range змінній об'єкта під назвою Rate:

Встановити ставку = Робочі книги (“MyBook.xlsx”) _
  .Worksheets(“Sheet1”).Range(“InterestRate”)

Після визначення цієї змінної об’єкта ви можете використовувати змінну Rate, а не довге посилання. Наприклад, ви можете змінити значення комірки з іменем InterestRate:

Rate.Value = .085

Це набагато легше ввести, ніж наведений нижче оператор:

Робочі зошити(“MyBook.xlsx”).Робочі аркуші(“Аркуш1”). _
  Діапазон (“Процентна ставка”) = 0,085

Окрім спрощення кодування, використання об’єктних змінних значно прискорює роботу макросів.

Оголошення типів змінних

Зазвичай вам не потрібно турбуватися про тип даних, які ви призначаєте змінній. Excel обробляє всі деталі за лаштунками. Наприклад, якщо у вас є змінна з назвою MyVar, ви можете призначити цій змінній номер будь-якого типу. Ви навіть можете призначити йому текстовий рядок пізніше під час процедури.

Якщо ви хочете, щоб ваші процедури виконувались якомога швидше, скажіть Excel, який тип даних буде призначено кожній із ваших змінних. Це відомо як оголошення типу змінної.

Загалом, ви повинні використовувати тип даних, який вимагає найменшої кількості байтів, але все ще може обробляти всі дані, призначені йому. Коли VBA працює з даними, швидкість виконання залежить від кількості байтів, які VBA має у своєму розпорядженні. Іншими словами, чим менше байтів використовує дані, тим швидше VBA зможе отримати доступ до даних і маніпулювати ними. Винятком з цього є тип даних Integer. Якщо швидкість критична, використовуйте тип даних Long.

Якщо ви використовуєте об’єктну змінну, ви можете оголосити змінну як певний тип об’єкта. Ось приклад:

Показник затемнення як діапазон
Встановити ставку = Робочі книги (“MyBook.xlsx”) _
  .Worksheets(“Sheet1”).Range(“InterestRate”)

Використання структури With-End With

Чи потрібно встановити ряд властивостей для об’єкта? Ваш код працює швидше, якщо ви використовуєте структуру With-End With. Додатковою перевагою є те, що ваш код легше читати.

У наступному коді не використовується With-End With:

Selection.HorizontalAlignment = xlCenter
Selection.VerticalAlignment = xlCenter
Selection.WrapText = Правда
Вибір. Орієнтація = 0
Selection.ShrinkToFit = False
Selection.MergeCells = False

Ось той самий код, переписаний для використання With-End With:

З виділенням
  .HorizontalAlignment = xlCenter
  .VerticalAlignment = xlCenter
  .WrapText = Правда
  .Орієнтація = 0
  .ShrinkToFit = Неправда
  .MergeCells = Неправда
Закінчити з

Коли ви використовуєте With-End With, переконайтеся, що кожен оператор починається з крапки.

Leave a Comment

Як спілкуватися в чаті в Outlook Web App

Як спілкуватися в чаті в Outlook Web App

Досліджуйте, як ефективно спілкуватися в чаті з колегами в Outlook Web App. Дізнайтеся про покрокову інструкцію та нові можливості для підвищення продуктивності.

Як заборонити Microsoft Word відкривати файли в режимі лише для читання в Windows

Як заборонити Microsoft Word відкривати файли в режимі лише для читання в Windows

Як заборонити Microsoft Word відкривати файли в режимі лише для читання в Windows. Microsoft Word відкриває файли в режимі лише для читання, що робить неможливим їх редагування? Не хвилюйтеся, методи наведено нижче

Як виправити неправильний друк документів Microsoft Word

Як виправити неправильний друк документів Microsoft Word

Як виправити помилки під час друку неправильних документів Microsoft Word Помилки під час друку документів Word зі зміненими шрифтами, безладними абзацами, відсутнім текстом або втраченим вмістом є досить поширеними. Однак не варто

Зітріть малюнки ручкою та маркером на слайдах PowerPoint

Зітріть малюнки ручкою та маркером на слайдах PowerPoint

Якщо ви використовували перо або маркер для малювання на слайдах PowerPoint під час презентації, ви можете зберегти малюнки для наступної презентації або стерти їх, щоб наступного разу, коли ви показуватимете їх, розпочали з чистих слайдів PowerPoint. Дотримуйтесь цих інструкцій, щоб стерти малюнки пером і маркером: Стирання рядків на одній з […]

Вміст бібліотеки стилів у SharePoint 2010

Вміст бібліотеки стилів у SharePoint 2010

Бібліотека стилів містить файли CSS, файли мови розширюваної мови таблиць стилів (XSL) та зображення, які використовуються попередньо визначеними основними сторінками, макетами сторінок та елементами керування в SharePoint 2010. Щоб знайти файли CSS у бібліотеці стилів сайту видавництва: виберіть «Дії сайту»→ «Перегляд». Весь вміст сайту. З’являється вміст сайту. Бібліотека Style знаходиться в […]

Форматуйте числа в тисячах і мільйонах у звітах Excel

Форматуйте числа в тисячах і мільйонах у звітах Excel

Не перевантажуйте аудиторію гігантськими цифрами. У Microsoft Excel ви можете покращити читабельність своїх інформаційних панелей і звітів, відформатувавши числа, щоб вони відображалися в тисячах або мільйонах.

Як ділитися сайтами SharePoint і слідкувати за ними

Як ділитися сайтами SharePoint і слідкувати за ними

Дізнайтеся, як використовувати інструменти соціальних мереж SharePoint, які дозволяють особам і групам спілкуватися, співпрацювати, обмінюватися інформацією та спілкуватися.

Як перетворити дати в юліанські формати в Excel

Як перетворити дати в юліанські формати в Excel

Юліанські дати часто використовуються у виробничих середовищах як мітка часу та швидкий довідник для номера партії. Цей тип кодування дати дозволяє роздрібним продавцям, споживачам та агентам з обслуговування визначити, коли був виготовлений продукт, а отже, і вік продукту. Юліанські дати також використовуються в програмуванні, військовій справі та астрономії. Інший […]

Як створити веб-програму Access

Як створити веб-програму Access

Ви можете створити веб-програму в Access 2016. Так що ж таке веб-програма? Ну, веб означає, що він онлайн, а додаток — це просто скорочення від «додаток». Користувацька веб-програма — це онлайн-додаток для баз даних, доступ до якого здійснюється з хмари за допомогою браузера. Ви створюєте та підтримуєте веб-програму у настільній версії […]

Панель швидкого запуску в SharePoint 2010

Панель швидкого запуску в SharePoint 2010

Більшість сторінок у SharePoint 2010 відображають список посилань навігації на панелі швидкого запуску ліворуч. Панель швидкого запуску відображає посилання на пропонований вміст сайту, наприклад списки, бібліотеки, сайти та сторінки публікації. Панель швидкого запуску містить два дуже важливі посилання: Посилання на весь вміст сайту: […]