Как создать макрос, который запускается только в выбранных ячейках? - PullRequest
0 голосов
/ 04 июля 2019

Мой опыт работы с макросами и VBA до сих пор ограничивался созданием кнопки для окраски ячеек, поэтому вам придется извиниться, если это возможно легко исправить.

У меня есть лист шаблона, в которыйБудут вставляться данные на еженедельной основе, содержащие как заголовки, так и задачи. Я собираюсь отфильтровать только заголовки, затем отформатировать эти строки и отфильтровать, автоматизировав это с помощью макроса.

Я записал следующее длясделать это: -

    ActiveSheet.Range("$A$4:$H$413").AutoFilter Field:=2, Criteria1:="="
    ActiveWindow.SmallScroll Down:=-9
    Range("A5:L168").Select
    Range("A168").Activate
    Selection.SpecialCells(xlCellTypeVisible).Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 3394611
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Selection.Font.Bold = True
    Range("I5:L168").Select
    Range("L168").Activate
    Selection.SpecialCells(xlCellTypeVisible).Select
    Selection.ClearContents
    Range("C5:H168").Select
    With Selection.Font
        .Color = -13382605
        .TintAndShade = 0
    End With
    ActiveSheet.Range("$A$4:$H$413").AutoFilter Field:=2
    Range("A4").Select

Однако при каждом запуске макроса форматируются одни и те же строки, и поэтому, когда в шаблон вставляются разные данные (содержащие заголовки в разных местах), форматирование, управляемое макросом, не выполняется.не поднимать строки заголовка.

Есть ли способ настроить диапазон так, чтобы макрос применялся только к определенным ячейкам, выбранным пользователем (например, к оставшимся видимым строкам при фильтрации данных)

1 Ответ

1 голос
/ 05 июля 2019

Выберите ячейки, которые вы хотите изменить.Они не должны быть смежными.

Этот код перебирает выбранные ячейки и меняет цвет фона на синий:

For Each i In Selection
    i.Interior.ColorIndex = 5
Next i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...