• Поиск последней пустой строки на листе Excel.

Можно осуществить несколькими способами. Пример  №1:

lastRow = Cells(Rows.Count, c).End(xlUp).Row

Где с - номер столбца в котором осуществляется поиск.

Пример 2:

Sub tst()
	Dim r As Long, startRow As Long, endRow As Long
	
	startRow = 1
	endRow = 65536
	
	For r = startRow To endRow
		If Cells(r, c).Value = "" Then Exit For
	Next r
	
End Sub

Где startRow - начало поиска, endRow - конечная строка поиска, с - номер колонки поиска. После цикла For перемнная r будет номер строки первой пустой ячейки в колонке с.

  • Ускорение работы макроса.

Когда мы работаем с книгой(ами) с польшим количеством данных и прописанных формул есть смысл на время выполнения нашего кода отключить автоподсчет.

Sub tst()
    Application.Calculation = xlCalculationManual 'Выключаем автоподсчет

    'Выполняем наш макрос

    Application.Calculation = xlCalculationAutomatic 'Включаем автоподсчет
End Sub

Стоит отметить ВАЖНЫЙ момент - если у Вас в коде есть точки выхода "Exit Sub" по условию, то перед выходом нужно автоподсчет включить "Application.Calculation = xlCalculationAutomatic". Так же стоит сделать если вы делаете обработчик ошибок.

Также для ускорения можно воспользоваться следующими свойствами:

'=== Отключение обновления окна ===
Application.ScreenUpdating = False

'=== Отключение ошибок ===
Application.DisplayAlerts = False

'=== Отключение обновлений связи ===
Application.AskToUpdateLinks = False
Add comment

powered by social2s