Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Зацикливание макроса
 
 Добрый день. Есть простенький макрос по
очистке данных в таблице. Что бы он автоматически срабатывал при
открытии нужного листа прописал вот такое в лист. При открытии листа
макрос начинает срабатывать без перерыва постоянно без остановки. В чем дело?
Код
Private Sub Worksheet_Activate()
Call очистка
End Sub
Изменено: hohol1973 - 6 Апр 2015 11:54:53
 
То, что Вы написали в подзаголовке темы, должно быть в сообщении. А код следует оформлять тегом. Не первый же день на форуме...
 
Так может дело в самом макросе? Пример можно посмотреть?
 
Юрий М,Извините, все не научусь темы оформлять
 
Ну так сейчас исправьте. Подзаголовок удалю я.
 
МВТ,Вот пример.
 
Потому что, у вас в макросе происходит активация рабочего листа из которого происходит вызов макроса и так по кругу :) Вставьте проверку
Код
If ActiveSheet.Name <> "реестр" Then Worksheets("реестр").Activate

 
Или так
Код
Sub очистка()
    Sheets("1").Range("C4:D9").ClearContents
    Sheets("2").Range("C4:D9").ClearContents
End Sub
Только вопрос, сколько в итоге будет листов, не каждый же раз переписывать код, с добавлением листов.
Изменено: gling - 14 Мар 2015 21:57:17
 
gling,Вы правы, а мой код не работает, потому что лист "реестр" еще не активен :(
 
gling, Элементарное просто...когда знаешь это элементарное досконально. Спасибо большое, ваш вариант работает. А листы будут постоянно одни и те же, так что все окей!
 
В нагрузку, если листы добавятся от первого до "итого"
Код
Sub очистка2()
Dim a As Long
For a = 1 To ThisWorkbook.Worksheets.Count - 2
    ThisWorkbook.Worksheets(a).Range("C4:D9").ClearContents
Next a
End Sub

Страницы: 1
Читают тему (гостей: 1)