Изменить цвет существующих нерегулярных границ - Excel
Я хотел бы изменить существующий цвет границы нескольких ячеек - некоторые из них имеют только границу вверху / слева или вообще не имеют и т. Д. В Excel.
Есть ли стандартная опция для этого, или это можно сделать с помощью макроса?
РЕДАКТИРОВАТЬ:
Видимо, мое описание не было достаточно ясным. Я пытаюсь изменить цвет границы (уже существующих ячеек) календаря. Так что это 12 вкладок и много строк.
Как вы можете видеть на рисунке ниже, не все ячейки имеют одинаковую границу (стиль), например. границы, окружающие всю ячейку (у некоторых есть, у некоторых ячеек есть только линия сбоку сверху / снизу, а у некоторых вообще нет). Я пытаюсь изменить их цвет без необходимости перерисовывать все линии. Я хотел бы "обновить" текущий цвет.
1 ответ
Вы можете использовать код VBA следующим образом - это повлияет на текущий выбор (если выбор является диапазоном ячеек
Option Explicit
Public Sub setBorders()
Dim cel As Range, clr1 As Long, clr2 As Long
clr1 = vbWhite 'if cell border color is different than white, and has LineStyle
clr2 = vbRed 'change its color to vbRed
If TypeOf Selection Is Range Then
For Each cel In Selection 'select your Range
With cel
With .Borders(xlEdgeLeft)
If .Color <> clr1 And .LineStyle <> xlNone Then .Color = clr2
End With
With .Borders(xlEdgeTop)
If .Color <> clr1 And .LineStyle <> xlNone Then .Color = clr2
End With
With .Borders(xlEdgeBottom)
If .Color <> clr1 And .LineStyle <> xlNone Then .Color = clr2
End With
With .Borders(xlEdgeRight)
If .Color <> clr1 And .LineStyle <> xlNone Then .Color = clr2
End With
End With
Next
End If
End Sub
Чтобы использовать его, откройте редактор VBA - Alt + F11 и вставьте код в стандартный модуль VBA.