Вопрос такой: Есть 2 макроса. Один вычисляет, ищет и выделяет определенный диапазон (пишу элементарный пример поиска диапазона, ибо выкладывать весь макрос просто нет смысла) [vba]
Код
Sub a_Found() CurrentStart = ActiveCell.Row CurrentEnd = Cells(ActiveCell.Row, 17).Offset(1).Row End Sub
[/vba] Второй же ищет в этом диапазоне определенные значения и заменяет их [vba]
Код
a_Found For j = CurrentEnd To CurrentStart Step -1 If cells(j, 1) <= 0 Then cells(j, 1) = "err" Next
[/vba] Проблема в том, что после End Sub из буфера удаляются значения CurrentStart, CurrentEnd и второй макрос перестает работать. Объединять их я принципиально не хочу, потому что макросов на определение диапазона - уйма, а действие по поиску - одно.
Вопрос такой: Есть 2 макроса. Один вычисляет, ищет и выделяет определенный диапазон (пишу элементарный пример поиска диапазона, ибо выкладывать весь макрос просто нет смысла) [vba]
Код
Sub a_Found() CurrentStart = ActiveCell.Row CurrentEnd = Cells(ActiveCell.Row, 17).Offset(1).Row End Sub
[/vba] Второй же ищет в этом диапазоне определенные значения и заменяет их [vba]
Код
a_Found For j = CurrentEnd To CurrentStart Step -1 If cells(j, 1) <= 0 Then cells(j, 1) = "err" Next
[/vba] Проблема в том, что после End Sub из буфера удаляются значения CurrentStart, CurrentEnd и второй макрос перестает работать. Объединять их я принципиально не хочу, потому что макросов на определение диапазона - уйма, а действие по поиску - одно.rever27
Сообщение отредактировал rever27 - Вторник, 09.06.2015, 12:25
Конечно. Посмотрите на переменную J Я Вам второй макрос привел как пример, а Вы зачем-то его к себе скопировали. вот так нужно [vba]
Код
Dim CurrentStart, CurrentEnd
Sub a_Found() CurrentStart = ActiveCell.Row CurrentEnd = Cells(ActiveCell.Row, 17).Offset(1).Row End Sub
Sub tt() For j = CurrentEnd To CurrentStart Step -1 If Cells(j, 1) <= 0 Then Cells(j, 1) = "err" Next End Sub
[/vba] Хотя, с другой стороны, Вы по-прежнему пользуетесь ActiveCell (очень, очень зря), поэтому Вам каждый раз нужно перезапускать макрос определения Старт и Енд А если по-нормальному, то нужно один раз запустить его и данные у Вас уже сидят в глобальных переменных.
Конечно. Посмотрите на переменную J Я Вам второй макрос привел как пример, а Вы зачем-то его к себе скопировали. вот так нужно [vba]
Код
Dim CurrentStart, CurrentEnd
Sub a_Found() CurrentStart = ActiveCell.Row CurrentEnd = Cells(ActiveCell.Row, 17).Offset(1).Row End Sub
Sub tt() For j = CurrentEnd To CurrentStart Step -1 If Cells(j, 1) <= 0 Then Cells(j, 1) = "err" Next End Sub
[/vba] Хотя, с другой стороны, Вы по-прежнему пользуетесь ActiveCell (очень, очень зря), поэтому Вам каждый раз нужно перезапускать макрос определения Старт и Енд А если по-нормальному, то нужно один раз запустить его и данные у Вас уже сидят в глобальных переменных._Boroda_
Manyasha, да, второпях менял, не заметил. _Boroda_, Немного Вас снова не понял. Во втором макросе нету АктивСеллс...
Код же второго макроса у меня выглядит так, чтобы отдельно не включать первый. Я понимаю, что каждый раз, когда я буду активировать 2 макрос, я буду снова перезаписывать Start, End. Но т.к. диапазон постоянно меняется, то так и задумано. [vba]
Код
Sub tt()
a_Found For j = CurrentEnd To CurrentStart Step -1 If Cells(j, 1) <= 0 Then Cells(j, 1) = "err" Next End Sub
[/vba]
А вот как сделать запуск макроса №1 один раз за работу Книги не включая его вручную в самом начале работы, т.к. активирую посредством других макросов - это вопрос интересный )
Manyasha, да, второпях менял, не заметил. _Boroda_, Немного Вас снова не понял. Во втором макросе нету АктивСеллс...
Код же второго макроса у меня выглядит так, чтобы отдельно не включать первый. Я понимаю, что каждый раз, когда я буду активировать 2 макрос, я буду снова перезаписывать Start, End. Но т.к. диапазон постоянно меняется, то так и задумано. [vba]
Код
Sub tt()
a_Found For j = CurrentEnd To CurrentStart Step -1 If Cells(j, 1) <= 0 Then Cells(j, 1) = "err" Next End Sub
[/vba]
А вот как сделать запуск макроса №1 один раз за работу Книги не включая его вручную в самом начале работы, т.к. активирую посредством других макросов - это вопрос интересный )rever27