Excel vba - пропустить уже выделенные строки - PullRequest
1 голос
/ 18 февраля 2012

Следующий код Excel vba сравнивает даты в верхней строке с датами начала и окончания в столбцах E и F. Затем он выделяет ячейки для создания цветовой полосы в каждой строке.

Как можно уже пропустить строкивыделите и автоматически создайте цветную полосу после ввода правильной даты?Заранее благодарим за любую помощь, которую вы можете предоставить.

Set Rng = Range(Range("E7"), Range("E" & RowS.Count).End(xlUp)) 'The start end dates are in columns E and F
DateRng.Resize(Rng.Count + 1).Interior.ColorIndex = xlNone

For Each Dn In Rng
    For Each Ac In DateRng

        If Ac >= Dn And Ac <= Dn.Offset(0, 1) Then
            Ac.Offset(Dn.Row - 2 - 0).Interior.ColorIndex = Range("D4").Value
            Ac.Offset(Dn.Row - 2 - 0).Borders(xlEdgeTop).Color = vbWhite
            Ac.Offset(Dn.Row - 2 - 0).Borders(xlEdgeTop).LineStyle = xlContinuous
            Ac.Offset(Dn.Row - 2 - 0).Borders(xlEdgeTop).Weight = xlThick
            Ac.Offset(Dn.Row - 2 - 0).Borders(xlEdgeBottom).Color = vbWhite
            Ac.Offset(Dn.Row - 2 - 0).Borders(xlEdgeBottom).LineStyle = xlContinuous
            Ac.Offset(Dn.Row - 2 - 0).Borders(xlEdgeBottom).Weight = xlThick
        End If
    Next Ac
Next Dn

V

1 Ответ

2 голосов
/ 19 февраля 2012

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

Затем в любом месте вашего кода, где вы хотите пропустить / сделать на основе форматирования, вы можете просто спросить, есть ли стиль (или стили)действительны для текущей ячейки, выполнив:

If Ac.style = "MyStyle" Then
' do stuff
Else
' do other stuff
end if

Чтобы проверить наличие нескольких разных стилей, вы можете использовать словарь коллекции или скриптов для проверки всех стилей с помощью функции.дайте мне знать, если вы хотите получить более подробную информацию о том, как это работает.

...