Как l oop код VBA для разных столбцов / листов - PullRequest
0 голосов
/ 07 августа 2020

Позвольте мне предварить это тем, что я ни в коем случае не являюсь разработчиком / писателем кода, поэтому я стараюсь изо всех сил, когда дело доходит до понимания всего.

В таблице Excel, которую я создаю для работают, я использую код, который проверяет цвет ячеек на основе условного форматирования, а затем меняет цвет ячеек на другом листе в соответствии с ними. Я выбрал макрос против CF из-за количества контролируемых столбцов / строк и позволял каждому человеку, использующему лист, настраивать цвет по своему вкусу, не меняя для этого сотни строк.

Код, который я использую:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xWRg, xDERg, xlWRg, xlDERg As Range
Dim xfnum As Long
'On Error Resume Next
Set xDERg = Sheets("Data Entry").Range("D9:D200")
Set xWRg = Sheets("Worksheet").Range("E6:E200")
For xfnum = 1 To xWRg.Count
    Set xlWRg = xWRg.Cells.Item(xfnum)
    Set xlDERg = xDERg.Cells.Item(xfnum)
    xlDERg.Interior.Color = xlWRg.DisplayFormat.Interior.Color
Next xfnum

End Sub

У меня он работает для указанного диапазона c, но он мне также нужен для проверки G9: G200 при вводе данных и K6: K200 на листе , длинный с парой других столбцов. Всего 7 диапазонов, которые необходимо контролировать.

1 Ответ

0 голосов
/ 07 августа 2020

Вот ваш код, переписанный для его очистки. Примечание. Если целевой диапазон меньше исходного диапазона, тогда ячейки ниже целевого диапазона могут быть окрашены.

Dim xWRg As Range: Set xWRg = Sheets("Worksheet").Range("E6:E200") 'Set your source range
Dim xDERg As Range: Set xDERg = Sheets("Data Entry").Range("D9:D203") 'Set your destination range, usaually same number of cells

    For xfnum = 1 To xWRg.Count 'loop through the number of items in source range
        
        'copy the conditional formating color to the destination range
        xDERg.Item(xfnum).Interior.Color = xWRg.Item(xfnum).DisplayFormat.Interior.Color
        
    Next xfnum 'loop

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...