Последние записи
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
- wprintf как напечатать кириллицу
- Взаимодействие через командную строку
- Сравнение языков на массивах. Часть 1
- Сравнение языков по скорости
- Чтение огромных xml-файлов
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
25th
Янв
Как оптимизировать макрос VBA в Microsoft Office Excel?
Posted by obzor under VBA
Подскажите, пожалуйста, как оптимизировать макрос? Записей в таблице много, работает очень медленно.
Sub Макрос1()
Dim W1 As Workbook
Set W1 = Application.Workbooks("11.xlsm")
Dim i, j, iLastrow As Long, iLastcol As Long
W1.Activate
With W1.Sheets(1)
iLastrow = .Cells(Rows.Count, 1).End(xlUp).Row
iLastcol = Cells(2, Columns.Count).End(xlToLeft).Column
For i = 2 To iLastrow
For j = 7 To iLastcol Step 3
Cells(i, j).FormulaR1C1 = "=RC[-1]-RC[-2]"
Next
Next
End With
End Sub
1. отключить на время обновление формул/перерисовку экрана
2. заполнить формулами 7 столбец
3. копировать/вставлять столбец формул п.2 до iLastCol Step 3
4. включить п.1
Лучше всего, сначала определить диапазон для вставки формул, а затем их вставить.
Например, так:
Sub qq()
Dim i As Long, a As Long, b As Long, x As Range
Application.ScreenUpdating = False
Workbooks("11.xlsm").Sheets(1).Activate
a = Cells(Rows.Count, 1).End(xlUp).Row
b = Cells(2, Columns.Count).End(xlToLeft).Column
For i = 7 To b Step 3
If x Is Nothing Then Set x = Cells(1, i) Else Set x = Union(x, Cells(1, i))
Next
Intersect(Rows("2:" & a), x.EntireColumn).FormulaR1C1 = "=RC[-1]-RC[-2]"
End Sub
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)