Страницы: 1
RSS
Усовершенствование прогресс бара
 
PB.Show  
PB.ProgressBar1.Max = 40  
 
Мож но ли сделать так, чтобы при установке максимального значения для ПБ, макрос определил номер последней заполненной строки, на данном листе (т.к. листов несколько, на одном допустим последняя заполненая сторка 100, на другом 500),  и сам подставил значение ProgressBar1.Max =    
 
Заранее спасибо!
 
конечно можно..  
 
т.е. на самом деле вы спрашиваете как найти послед строку?
Живи и дай жить..
 
PB.ProgressBar1.Max = Range("A" & Rows.Count).End(xlUp).Row
 
{quote}{login=EducatedFool}{date=03.12.2010 11:36}{thema=}{post}PB.ProgressBar1.Max = Range("A" & Rows.Count).End(xlUp).Row{/post}{/quote}  
 
После вставления этой строки у меня начало ругаться на    
строку PB.ProgressBar1.Value = i в цикле  
Dim i As Integer  
PB.Show  
PB.ProgressBar1.Max = Range("A" & Rows.Count).End(xlUp).Row  
 
i = 9  
Do While Sheets("ZZZ").Cells(i, 4) <> ""  
  DoEvents  
PB.ProgressBar1.Value = i  
...  
...  
i = i + 1  
Loop  
 
Если установить фиксированное значение Мах то все работает. Мб я что-то не то делаю?
 
свойство value прогрессбара имеет тип integer..  
 
следовательно может отображать только 32767 строк  
 
используйте процентную шкалу:  
maxstr=Range("A" & Rows.Count).End(xlUp).Row  
PB.ProgressBar1.Value =i/maxstr*100
Живи и дай жить..
 
{quote}{login=Imhost}{date=03.12.2010 12:29}{thema=Re: }{post}Мб я что-то не то делаю?{/post}{/quote}  
 
Ваша ошибка в том, что, вместо того, чтобы оптимизировать макрос, - вы делаете для него прогресс-бар...  
 
Мне достаточно было увидеть одну строку: Do While Sheets("ZZZ").Cells(i, 4) <> ""  
чтобы понять, что время работы макроса можно снизить в десятки раз.  
 
Выкладывайте свой файл с макросом - посмотрим, что можно придумать.
 
Файл приложил  
Данная таблица может достигать размера больше 1000 строк, боюсь в любом случае без прогресс бара необойтись.  
 
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
Ой, не качайте файл он 1,1 мб. Модераторы удалите его.
 
Спасибо Игорь! Вы очень помогли!
Страницы: 1
Читают тему
Наверх