Страницы: 1
RSS
VBA Границы по указанному выделению, Работает, но захватывает и ячейку, которая была активна ранее
 
Привет!
Хочу, чтобы у меня красными пунктирными границами ограничивался определенный диапазон. Диапазон Range(cell.Offset(0, -1), "ar47")
Макрос делает то, что я хочу, но заодно рисует границы для ячейки, которая была активна до запуска макроса
Как сделать так, чтобы макрос обрабатывал только нужный мне диапазон, не захватывая ранее активную ячейку?
Код
Sub punktir()
For Each cell In Range("b10:aq10").Cells
If cell.Value = Range("a1") Then Range(cell.Offset(0, -1), "ar47").Select 
 With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlDash
        .Color = -16776961
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlDash
        .Color = -16776961
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlDash
        .Color = -16776961
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlDash
        .Color = -16776961
        .TintAndShade = 0
        .Weight = xlMedium
    End With

Next
End Sub
 
в макросе написано:

если в 10-й строке с колонки В по AQ есть ячейки с значением равным значению в А1 то для КАЖДОЙ из этих ячеек диапазон с ячейки на 1 одну левее найденной по AR47 обносится пунктирной линией по верхнему, правлму, нижнему и левому краям названноного диапазона

а что нужно Вам пока неизвестно
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
У меня всё нормально рисует. Может она у вас раскрашена до этого была?
Всякие ячейки активировал.
Изменено: Alemox - 02.06.2018 10:32:13 (Уменьшил картинку)
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Alemox, 170 кБ для такой "информативной" картинки - не многовато ли?
 
vikttur, это всё ножницы. Я не причём.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Во вложении примеры ожидание-реальность после работы макроса
Выделяется именно активная до запуска макроса ячейка
Я не понимаю в каком месте в макросе я говорю экселю это делать
Изменено: AdelaidaGermanova - 01.08.2018 17:06:31
 
На первой же итерации цикла выделение не меняется, если значение cell не совпадает с A1. Соответственно, активная ячейка (она же Selection) и обрабатывается.
Изменено: sokol92 - 02.06.2018 13:45:49
Владимир
 
Я подозревала. Только не нашла, как это поправить. Помогите, пожалуйста!
 
Разбейте строку 3 на две (после Then). Добавьте перед строкой "Next" строку "End If".
Владимир
 
Владимир, все заработало, спасибо большое!
Страницы: 1
Наверх