Страницы: 1
RSS
Увеличение высоты строк на VBA
 
Всем добрый день!  
 
Есть некая таблица, в которой примерно 2000 строк, причем строки разной высоты. Задача стоит следующая: высоту всех строк увеличить на некоторое значение (4). Если решать ее в лоб, например так  
 
for r=1 to 2000  
Rows®.RowHeight=Rows®.RowHeight+4  
next r  
 
Нужный результат достигается, но времени на это надо...  
 
Собственно вопрос: можно ли как-нибудь ускорить этот процесс? Ну скажем, делать это не построчно, а для всех строк сразу: Rows("1:2000").RowHeight=Rows("1:2000").RowHeight+4 {не работает}  
 
Или какой-нибудь другой вариант, как в Word: Абзац -> Интервал Перед (После)...  
 
Заранее всем спасибо
 
Sub ololo()  
   Rows("1:2000").Select  
       Selection.RowHeight = 10  
End Sub  
может как то так
Оружие не убивает Человека! Человек убивает Человека!!!
 
Sub ккк()  
  Application.ScreenUpdating = False  
   For r = 1 To 2000  
Rows®.RowHeight = Rows®.RowHeight + 4  
Next r  
Application.ScreenUpdating = True  
End Sub  
вот так точно быстрее работает
Оружие не убивает Человека! Человек убивает Человека!!!
 
{quote}{login=Borodets}{date=05.08.2010 10:36}{thema=}{post}Sub ккк()  
  Application.ScreenUpdating = False  
   For r = 1 To 2000  
Rows®.RowHeight = Rows®.RowHeight + 4  
Next r  
Application.ScreenUpdating = True  
End Sub  
вот так точно быстрее работает{/post}{/quote}  
 
Быстрее, но это я уже применил...
 
Решил по следующему алгоритму:  
1. Заполняем массив уникальными высотами строк  
2. Для каждого элемента массива выделяем соответствующие строки  
3. Для выделенного устанавливаем высоту строки равную: значение элемента массива + 4  
 
Если кому-то интересен код - могу выложить
Страницы: 1
Наверх