Страницы: 1
RSS
переход на следующую строку с VBA
 
Извиняюсь за элементарный вопрос  
выбирается определенная ячейка  
Например  
Range("I12").Activate  
необходимо в цикле переходить по строкам вниз выполняя или не выполняя выражение  
делема в переходе на следующую строку, не могу выяснить синтаксис    
книги нет, help понять не могу  
 
также буду весьма благодарен за полезную ссылку описания всех функций и процедур VBA
 
Посмотрите мой простенький мамкрос в соседней теме: http://www.planetaexcel.ru/forum.php?thread_id=18859 <BR>Только выделять ячейки без необходимости не следует - сильно падает скорость.
 
Лучше не активировать ячейки вообще, т.е. не использовать Activate и Select  
 
Sub Test()  
Dim iRow As Long  
  For iRow = 12 To 20  
     Cells(iRow, "I") = 1  
  Next iRow  
End Sub
 
{quote}{login=}{date=04.09.2010 06:45}{thema=}{post}Лучше не активировать ячейки вообще, т.е. не использовать Activate и Select  
 
Sub Test()  
Dim iRow As Long  
  For iRow = 12 To 20  
     Cells(iRow, "I") = 1  
  Next iRow  
End Sub{/post}{/quote}  
 
Щас попробую данный вариант.  
А почему лучше не использовать Activate и Select
 
Я же выше написал - падает скорость. Да ещё и экран дёргается.
 
Вам же написали - сильно тормозит. Да и не нужно. Или вы любите мультики:-)?
Я сам - дурнее всякого примера! ...
 
Юрий, мож поделитесь со мной Вашим генератором ответов? А то вручную лень набирать:-) Зрение тормозит...
Я сам - дурнее всякого примера! ...
 
По воду генератора к Диме :-)
 
{quote}{login=axelfrog}{date=04.09.2010 06:48}{thema=Re: }{post}{quote}{login=}{date=04.09.2010 06:45}{thema=}{post}Лучше не активировать ячейки вообще, т.е. не использовать Activate и Select  
 
Sub Test()  
Dim iRow As Long  
  For iRow = 12 To 20  
     Cells(iRow, "I") = 1  
  Next iRow  
End Sub{/post}{/quote}  
 
Щас попробую данный вариант.  
 
 
 
Огромное человеческое спасибо!  
Необходимый синтаксис выявил )    
 
Просто без хорошей книги, на элементарные вещи уходит уйма времени.  
Я вообще по образованию программер, но так не нравится программировать, работаю не по специальности, дабы облегчить рабочий процесс приходится садиться и вспоминать что как да к чему))    
 
А почему лучше не использовать Activate и Select{/post}{/quote}
 
{quote}{login=}{date=04.09.2010 06:45}{thema=}{post}Лучше не активировать ячейки вообще, т.е. не использовать Activate и Select  
 
Sub Test()  
Dim iRow As Long  
  For iRow = 12 To 20  
     Cells(iRow, "I") = 1  
  Next iRow  
End Sub{/post}{/quote}  
 
 
 
Огромное человеческое спасибо!  
Необходимый синтаксис выявил )  
 
Просто без хорошей книги, на элементарные вещи уходит уйма времени.  
Я вообще по образованию программер, но так не нравится программировать, работаю не по специальности, дабы облегчить рабочий процесс приходится садиться и вспоминать что как да к чему))    
 
Сори промахнулся
 
axelfrog, вот для наглядности. Попробуем закрасить 10 000 ячеек в столбце А.  
Макрос, где ячейки выделяются:  
Sub С_выделениемЯчеек()  
a = Timer  
For i = 1 To 10000  
Cells(i, 1).Select  
Cells(i, 1).Interior.ColorIndex = 6  
Next  
MsgBox Timer - a  
End Sub  
Запомните время, а теперь тоже самое, но не выделяя ячейки:  
Sub Без_выделенияЯчеек()  
a = Timer  
For i = 1 To 10000  
Cells(i, 1).Interior.ColorIndex = 6  
Next  
MsgBox Timer - a  
End Sub  
Есть разница?
 
{quote}{login=Юрий М}{date=04.09.2010 07:04}{thema=}{post}axelfrog, вот для наглядности. Попробуем закрасить 10 000 ячеек в столбце А.  
Макрос, где ячейки выделяются:  
Sub С_выделениемЯчеек()  
a = Timer  
For i = 1 To 10000  
Cells(i, 1).Select  
Cells(i, 1).Interior.ColorIndex = 6  
Next  
MsgBox Timer - a  
End Sub  
Запомните время, а теперь тоже самое, но не выделяя ячейки:  
Sub Без_выделенияЯчеек()  
a = Timer  
For i = 1 To 10000  
Cells(i, 1).Interior.ColorIndex = 6  
Next  
MsgBox Timer - a  
End Sub  
Есть разница?{/post}{/quote}  
 
само собой, я же говорю, что приходится просто методом проб и ошибок вычислять ту или иную функцию (
 
{quote}{login=Юрий М}{date=04.09.2010 06:50}{thema=}{post}Я же выше написал - падает скорость. Да ещё и экран дёргается.{/post}{/quote}  
 
Как сделать задержку в цикле 30сек.?
 
Ищите Application.OnTime
 
Или: "Для того, чтобы приостановить выполнение макроса на определённое время, достаточно использовать метод Wait об'екта Application. Далее следуют пять примеров, которые могут остановить выполнение макроса на десять секунд"  
Application.Wait Time:=DateAdd("s", 10, Now)    
Application.Wait Time:=Now + #12:00:10 AM#    
Application.Wait Time:=Now + 10 / 86400    
Application.Wait Time:=Now + TimeSerial(0, 0, 10)    
Application.Wait Time:=Now + TimeValue("0:00:10")
 
{quote}{login=Юрий М}{date=04.09.2010 07:42}{thema=}{post}Или: "Для того, чтобы приостановить выполнение макроса на определённое время, достаточно использовать метод Wait об'екта Application. Далее следуют пять примеров, которые могут остановить выполнение макроса на десять секунд"  
Application.Wait Time:=DateAdd("s", 10, Now)    
Application.Wait Time:=Now + #12:00:10 AM#    
Application.Wait Time:=Now + 10 / 86400    
Application.Wait Time:=Now + TimeSerial(0, 0, 10)    
Application.Wait Time:=Now + TimeValue("0:00:10"){/post}{/quote}  
 
Большое спасибо )
 
Ну и для полноты:  
Declare Sub Sleep Lib "kernel32" (ByVal milliseconds As Long)  
Sub tt()  
MsgBox 1  
Sleep 3000  
MsgBox 2  
End Sub  
 
3000 - это миллисекунды.
 
{quote}{login=axelfrog}{date=04.09.2010 07:01}{thema=Re: }{post}{quote}{login=}{date=04.09.2010 06:45}{thema=}  
Я вообще по образованию программер, но так не нравится программировать, работаю не по специальности{/post}{/quote}  
Прикольно, особенно мне:-) Я сварщик. Работаю по специальности.
Я сам - дурнее всякого примера! ...
 
Беда с этими цитатами.  
"Я вообще по образованию программер, но так не нравится программировать, работаю не по специальности"  
Прикольно, особенно мне:-) Я сварщик. Работаю по специальности.
Я сам - дурнее всякого примера! ...
 
{quote}{login=KuklP}{date=04.09.2010 10:02}{thema=}{post}Беда с этими цитатами.  
"Я вообще по образованию программер, но так не нравится программировать, работаю не по специальности"  
Прикольно, особенно мне:-) Я сварщик. Работаю по специальности.{/post}{/quote}  
 
Дела..  
Я тоже сварщик, и причем не плохой. А работаю не по специальности программером ))
 
Интересно тема всплыла...  
Уже не потому ли, что я недавно упомянул специальность "сварщик"? :)
Страницы: 1
Наверх