Як спілкуватися в чаті в Outlook Web App
Досліджуйте, як ефективно спілкуватися в чаті з колегами в Outlook Web App. Дізнайтеся про покрокову інструкцію та нові можливості для підвищення продуктивності.
Оскільки макроси Excel стають все більш надійними та складними, ви можете виявити, що вони втрачають продуктивність. Під час обговорення макросів слово продуктивність зазвичай є синонімом швидкості . Швидкість — це те, наскільки швидко ваші процедури VBA виконують свої передбачувані завдання. Нижче наведено десять способів, які допоможуть підтримувати роботу макросів Excel на оптимальному рівні продуктивності.
Чи знаєте ви, що кожного разу, коли комірка, яка впливає на будь-яку формулу у вашій електронній таблиці, змінюється або маніпулюється, Excel перераховує весь аркуш? На робочих аркушах, які містять велику кількість формул, така поведінка може різко сповільнити роботу макросів.
Ви можете використовувати властивість Application.Calculation, щоб повідомити Excel перейти в режим ручного обчислення. Коли книга перебуває в режимі ручного обчислення, вона не буде перерахована, доки ви явно не запустить обчислення, натиснувши клавішу F9.
Переведіть Excel в режим ручного обчислення, запустіть свій код, а потім перейдіть до автоматичного режиму обчислення.
Підмакрос1() Application.Calculation = xlCalculationManual 'Помістіть свій код макросу тут Application.Calculation = xlCalculationAutomatic Кінець суб
Повернення режиму обчислення на xlCalculationAutomatic автоматично запускає перерахунок робочого аркуша, тому не потрібно натискати клавішу F9 після запуску макросу.
Ви можете помітити, що під час запуску макросів ваш екран досить мерехтить. Це мерехтіння означає, що Excel намагається перемалювати екран, щоб показати поточний стан аркуша. На жаль, кожен раз, коли Excel перемальовує екран, він займає ресурси пам’яті.
Ви можете використовувати властивість Application.ScreenUpdating, щоб вимкнути оновлення екрана, доки ваш макрос не завершиться. Вимкнення оновлення екрана економить час і ресурси, дозволяючи вашому макросу працювати трохи швидше. Після завершення роботи коду макросу ви можете знову ввімкнути оновлення екрана.
Підмакрос1() Application.Calculation = xlCalculationManual Application.ScreenUpdating = False 'Помістіть свій код макросу тут Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True Кінець суб
Після того як ви встановите для властивості ScreenUpdating значення True, Excel автоматично запустить перемалювання екрана.
Рядок стану Excel, який з’являється внизу вікна Excel, зазвичай відображає перебіг певних дій у Excel. Якщо ваш макрос працює з великою кількістю даних, рядок стану займе певні ресурси.
Важливо зазначити, що вимкнення оновлення екрана є окремою від вимкнення відображення рядка стану. Рядок стану продовжуватиме оновлюватися, навіть якщо ви вимкнули оновлення екрана. Ви можете використовувати властивість Application.DisplayStatusBar, щоб тимчасово вимкнути будь-які оновлення рядка стану, ще більше покращуючи продуктивність вашого макросу:
Підмакрос1() Application.Calculation = xlCalculationManual Application.ScreenUpdating = False Application.DisplayStatusBar = False 'Помістіть свій код макросу тут Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True Application.DisplayStatusBar = True Кінець суб
Ви можете реалізувати макроси як процедури подій, вказуючи Excel запускати певний код, коли аркуш або книга змінюються.
Іноді стандартні макроси вносять зміни, які запускають процедуру події. Наприклад, якщо у вас є стандартний макрос, який маніпулює кількома клітинками на аркуші 1, кожен раз, коли комірка на цьому аркуші змінюється, ваш макрос повинен призупинятися під час виконання події Worksheet_Change.
Ви можете додати ще один рівень підвищення продуктивності, використовуючи властивість EnableEvents, щоб повідомити Excel ігнорувати події під час виконання макросу.
Перед запуском макросу встановіть для властивості EnableEvents значення False. Після завершення роботи коду макросу ви можете повернути властивість EnableEvents значення True.
Підмакрос1() Application.Calculation = xlCalculationManual Application.ScreenUpdating = False Application.DisplayStatusBar = False Application.EnableEvents = False 'Помістіть свій код макросу тут Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True Application.DisplayStatusBar = True Application.EnableEvents = True Кінець суб
Кожного разу, коли ваш макрос змінює кількість рядків, змінює кількість стовпців або змінює налаштування сторінки аркуша, Excel змушений витрачати час на перерахунок розривів сторінок, показаних на аркуші.
Ви можете уникнути такої поведінки, просто приховавши розриви сторінок перед запуском макросу.
Встановіть для властивості аркуша DisplayPageBreaks значення False, щоб приховати розриви сторінок. Якщо ви хочете і надалі відображати розриви сторінок після запуску макросу, поверніть властивість аркуша DisplayPageBreaks на True.
Підмакрос1() Application.Calculation = xlCalculationManual Application.ScreenUpdating = False Application.DisplayStatusBar = False Application.EnableEvents = False Activesheet.DisplayPageBreaks = False 'Помістіть свій код макросу тут Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True Application.DisplayStatusBar = True Application.EnableEvents = True Activesheet.DisplayPageBreaks = True Кінець суб
Якщо ваш макрос маніпулює зведеними таблицями, які містять великі джерела даних, ви можете відчувати низьку продуктивність під час виконання таких речей, як динамічне додавання або переміщення зведених полів.
Ви можете покращити продуктивність свого макросу, призупинивши перерахунок зведеної таблиці, доки не буде внесено всі зміни зведеного поля. Просто встановіть для властивості PivotTable.ManualUpdate значення True, щоб відкласти перерахунок, запустіть код макросу, а потім встановіть для властивості PivotTable.ManualUpdate значення False, щоб запустити перерахунок.
Підмакрос1()
ActiveSheet.PivotTables("PivotTable1").ManualUpdate=True
'Помістіть свій код макросу тут
ActiveSheet.PivotTables("PivotTable1").ManualUpdate=False
Кінець суб
Важливо пам’ятати, що хоча Macro Recorder економить час, пишучи код VBA для вас, він не завжди пише найефективніший код. Яскравим прикладом є те, як Macro Recorder фіксує будь-яку дію копіювання та вставки, яку ви виконуєте під час запису.
Ви можете трохи посилити свої макроси, виключивши посередника та здійснивши пряме копіювання з однієї комірки в комірку призначення. Цей альтернативний код використовує аргумент Destination, щоб обійти буфер обміну та скопіювати вміст комірки A1 безпосередньо в комірку B1.
Діапазон("A1").Призначення копіювання:=Діапазон("B1")
Якщо вам потрібно скопіювати лише значення (не форматування чи формули), ви можете ще більше підвищити продуктивність, уникаючи методу Copy разом. Просто встановіть значення клітинки призначення на те саме значення, що й у вихідній клітинці. Цей метод приблизно в 25 разів швидше, ніж використання методу Copy:
Діапазон("B1").Значення = Діапазон("A1").Значення
Якщо вам потрібно скопіювати лише формули з однієї клітинки в іншу (не значення чи форматування), ви можете встановити для формули цільової клітинки ту саму формулу, що міститься у вихідній клітинці:
Діапазон("B1").Формула = Діапазон("A1").Формула
Під час запису макросів ви часто маніпулюєте одним і тим же об’єктом кілька разів. Ви можете заощадити час і підвищити продуктивність, використовуючи оператор With, щоб виконати кілька дій з даним об’єктом за один кадр.
Оператор With, використаний у наведеному нижче прикладі, повідомляє Excel одночасно застосувати всі зміни форматування:
З діапазоном ("A1"). Шрифт
.Жирний = правда
.Курсив = Правда
.Підкреслення = xlUnderlineStyleSingle
Закінчити з
Звикання розділяти дії на фрагменти в операторах With не тільки забезпечить пришвидшення роботи ваших макросів, але й полегшить читання коду макросу.
Macro Recorder любить використовувати метод Select для явного виділення об’єктів перед виконанням дій з ними. Як правило, немає необхідності вибирати об’єкти перед роботою з ними. Насправді, ви можете значно покращити продуктивність макросу, не використовуючи метод Select.
Записавши макроси, візьміть за звичку змінювати згенерований код, щоб видалити методи Select. У цьому випадку оптимізований код буде виглядати так:
Аркуші("Аркуш1").Діапазон("A1").FormulaR1C1 = "1000"
Аркуші("Аркуш2").Діапазон("A1").FormulaR1C1 = "1000"
Аркуші("Аркуш3").Діапазон("A1").FormulaR1C1 = "1000"
Зверніть увагу, що вибирається нічого. Код просто використовує ієрархію об’єктів для застосування необхідних дій.
Інший спосіб прискорити роботу макросів — обмежити кількість посилань на дані робочого аркуша в коді. Завжди менш ефективно захоплювати дані з аркуша, ніж з пам’яті. Тобто ваші макроси будуть працювати набагато швидше, якщо їм не доведеться постійно взаємодіяти з аркушем.
Наприклад, наступний простий код змушує VBA постійно повертатися до Sheets(“Sheet1”).Range(“A1”), щоб отримати число, необхідне для порівняння, яке виконується в операторі If:
Для звітного місяця = від 1 до 12
Якщо діапазон("A1").Значення = звіт за місяць, то
MsgBox 1000000 / ReportMonth
Кінець Якщо
Наступний звіт місяць
Набагато ефективнішим методом є збереження значення в Sheets(“Sheet1”).Range(“A1”) у змінній під назвою MyMonth. Таким чином, код посилається на змінну MyMonth замість робочого аркуша:
Dim MyMonth як ціле число
Мій місяць = Діапазон ("A1"). Значення
Для звітного місяця = від 1 до 12
Якщо MyMonth = ReportMonth Тоді
MsgBox 1000000 / ReportMonth
Кінець Якщо
Наступний звіт місяць
Розгляньте можливість використання змінних для роботи з даними в пам’яті, а не прямих посилань на робочі таблиці.
Під час виклику методу або властивості об’єкта йому потрібно пройти через інтерфейс IDispatch компонента OLE. Виклики цих компонентів OLE потребують часу, тому зменшення кількості посилань на компоненти OLE може покращити швидкість коду макросу.
Для виклику властивостей або методів об’єкта зазвичай використовується метод представлення Object.Method , тобто «.» символ використовується для виклику властивостей і методів.
Таким чином, кількість викликів методів або властивостей можна оцінити за кількістю символів ".". Чим менше "." символ, тим швидше виконується код.
Наприклад, наступний оператор містить 3 символи ".".
ThisWorkbook.Sheet1.Range("A1").Value = 100
Наступне твердження має лише один символ ".".
Activewindow.Top = 100
Ось кілька прийомів, щоб зменшити кількість символів "." бігти швидше.
По-перше, коли вам потрібно посилатися на той самий об’єкт неодноразово, ви можете встановити для об’єкта змінну, щоб зменшити кількість викликів. Наприклад, наступний код потребує двох викликів на рядок.
ThisWorkbook.Sheets("Sheet1").Cells(1, 1) = 100
ThisWorkbook.Sheets("Sheet1").Cells(2, 1) = 200
ThisWorkbook.Sheets("Sheet1").Cells(3, 1) = 300
Оскільки на об’єкт Sheets("Sheet1") потрібно посилатися неодноразово, його можна спочатку встановити як змінну sht , щоб кожен код потрібно було викликати лише один раз.
Set sht = ThisWorkbook.Sheets("Sheet1")
sht.Cells(1, 1) = 100
sht.Cells(2, 1) = 200
sht.Cells(3, 1) = 300
По-друге, якщо ви не хочете оголошувати тимчасову змінну sht, ви також можете використати оператор With , згаданий раніше. Як показано в наступному прикладі:
With ThisWorkbook.Sheets("Sheet1")
.Cells(1, 1) = 100
.Cells(2, 1) = 200
.Cells(3, 1) = 300
End With
По-третє, коли є багато циклів, намагайтеся зберігати властивості та методи поза циклом. Під час повторного використання значення властивості того самого об’єкта в циклі ви можете спочатку призначити значення властивості вказаній змінній поза циклом, а потім використовувати змінну в циклі, що може досягти більшої швидкості. Як показано в наступному прикладі:
For i = 1 To 1000
ThisWorkbook.Sheets("Sheet1").Cells(1, 1) = Cells(1, 2).Value
ThisWorkbook.Sheets("Sheet1").Cells(2, 1) = Cells(1, 2).Value
ThisWorkbook.Sheets("Sheet1").Cells(3, 1) = Cells(1, 2).Value
Next i
Кожен цикл у цьому прикладі отримує властивість Value комірки Cells(1,2). Якщо ви призначите змінній властивість Value Cells(1.2) перед початком циклу, ви отримаєте швидший запуск. Як показано в наступному прикладі:
tmp = Cells(1, 2).Value
For i = 1 To 1000
ThisWorkbook.Sheets("Sheet1").Cells(1, 1) = tmp
ThisWorkbook.Sheets("Sheet1").Cells(2, 1) = tmp
ThisWorkbook.Sheets("Sheet1").Cells(3, 1) = tmp
Next i
Наведений вище код викликає ThisWorkbook.Sheets("Sheet1") кожного разу, коли виконується цикл. Ви можете зробити це швидше, використовуючи оператор With , щоб перемістити виклик ThisWorkbook.Sheets("Sheet1") за межі циклу. Як пок��зано в наступному прикладі:
tmp = Cells(1, 2).Value
With ThisWorkbook.Sheets("Sheet1")
For i = 1 To 1000
.Cells(1, 1) = tmp
.Cells(2, 1) = tmp
.Cells(3, 1) = tmp
Next i
End With
Початківці зазвичай вважають за краще використовувати змінні типу Variant, перевага яких полягає в тому, що вони менш складні, оскільки можна використовувати будь-який тип даних без проблеми переповнення пам’яті, якщо дані завеликі для типів даних Integer або Long. Однак для даних типу Varienmt потрібно більше додаткового простору пам’яті, ніж для інших указаних типів (2 байти для даних Integer, 4 байти для даних Long і 16 байтів для даних Variant), VBA вимагає більше часу для обробки даних типу Variant, ніж для інших указаних типів. даних. Як показує наступний приклад.
Sub VariantTest()
Dim i As Long
Dim ix As Integer, iy As Integer, iz As Integer
Dim vx As Variant, vy As Variant, vz As Variant
Dim tm As Date
vx = 100: vy = 50
tm = Timer
For i = 1 To 1000000
vz = vx * vy
vz = vx + vy
vz = vx - vy
vz = vx / vy
Next i
Debug.Print "Variant types take " & Format((Timer - tm), "0.00000") & " seconds"
ix = 100: iy = 50
tm = Timer
For i = 1 To 1000000
iz = ix * iy
iz = ix + iy
iz = ix - iy
iz = ix / iy
Next i
Debug.Print "Integer types take " & Format((Timer - tm), "0.00000") & " seconds"
End Sub
У наведеному вище коді рядки з 8 по 13 виконують 1 мільйон операцій додавання, віднімання, множення та ділення змінних типу Variant, а рядки з 17 по 22 виконують 1 мільйон операцій додавання, віднімання, множення та ділення змінних типу Integer. На моєму комп’ютері операція зі змінною Variant зайняла приблизно 0,09375 секунди, тоді як операція зі змінною Integer зайняла приблизно 0,03125 секунди. Результати можуть відрізнятися від комп’ютера до комп’ютера, але змінні Variant значно повільніші, ніж змінні Integer .
З цієї причини рекомендується уникати використання змінних Variant, якщо ви можете явно використовувати вказаний тип даних .
Досліджуйте, як ефективно спілкуватися в чаті з колегами в Outlook Web App. Дізнайтеся про покрокову інструкцію та нові можливості для підвищення продуктивності.
Як заборонити Microsoft Word відкривати файли в режимі лише для читання в Windows. Microsoft Word відкриває файли в режимі лише для читання, що робить неможливим їх редагування? Не хвилюйтеся, методи наведено нижче
Як виправити помилки під час друку неправильних документів Microsoft Word Помилки під час друку документів Word зі зміненими шрифтами, безладними абзацами, відсутнім текстом або втраченим вмістом є досить поширеними. Однак не варто
Якщо ви використовували перо або маркер для малювання на слайдах PowerPoint під час презентації, ви можете зберегти малюнки для наступної презентації або стерти їх, щоб наступного разу, коли ви показуватимете їх, розпочали з чистих слайдів PowerPoint. Дотримуйтесь цих інструкцій, щоб стерти малюнки пером і маркером: Стирання рядків на одній з […]
Бібліотека стилів містить файли CSS, файли мови розширюваної мови таблиць стилів (XSL) та зображення, які використовуються попередньо визначеними основними сторінками, макетами сторінок та елементами керування в SharePoint 2010. Щоб знайти файли CSS у бібліотеці стилів сайту видавництва: виберіть «Дії сайту»→ «Перегляд». Весь вміст сайту. З’являється вміст сайту. Бібліотека Style знаходиться в […]
Не перевантажуйте аудиторію гігантськими цифрами. У Microsoft Excel ви можете покращити читабельність своїх інформаційних панелей і звітів, відформатувавши числа, щоб вони відображалися в тисячах або мільйонах.
Дізнайтеся, як використовувати інструменти соціальних мереж SharePoint, які дозволяють особам і групам спілкуватися, співпрацювати, обмінюватися інформацією та спілкуватися.
Юліанські дати часто використовуються у виробничих середовищах як мітка часу та швидкий довідник для номера партії. Цей тип кодування дати дозволяє роздрібним продавцям, споживачам та агентам з обслуговування визначити, коли був виготовлений продукт, а отже, і вік продукту. Юліанські дати також використовуються в програмуванні, військовій справі та астрономії. Інший […]
Ви можете створити веб-програму в Access 2016. Так що ж таке веб-програма? Ну, веб означає, що він онлайн, а додаток — це просто скорочення від «додаток». Користувацька веб-програма — це онлайн-додаток для баз даних, доступ до якого здійснюється з хмари за допомогою браузера. Ви створюєте та підтримуєте веб-програму у настільній версії […]
Більшість сторінок у SharePoint 2010 відображають список посилань навігації на панелі швидкого запуску ліворуч. Панель швидкого запуску відображає посилання на пропонований вміст сайту, наприклад списки, бібліотеки, сайти та сторінки публікації. Панель швидкого запуску містить два дуже важливі посилання: Посилання на весь вміст сайту: […]