Извините, поскольку я до сих пор не понимаю, что вы имеете в виду.
В любом случае, я предполагаю, что вы хотите кодировать условное форматирование, как если бы вы делали это вручную.
Я нахожу код ниже после того, как я записал макрос мой шаг вручную в Условном форматировании. Я думаю, что код в вашем состоянии может быть таким:
Sub test()
Cells.FormatConditions.Delete
cel7.Select
cf = cel7.Address(0, 0)
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=NOT(ISBLANK(" & cf & "))"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Application.WindowState = xlMaximized
End Sub
Я пробую код выше, имея переменную cel7, ссылающуюся на ячейку D10. После запуска кода, если я что-то наберу в ячейке D10, D10 заполняет черный шрифт белым цветом. Если я очищаю содержимое D10, D10 возвращается в нормальное состояние (без заполнения).
Также я пытаюсь установить переменную cel7 в диапазоне от D2 до D10. Если я наберу на любой ячейке в D2: D10, ячейка заполнится черным с белым шрифтом. Если я уберу это, ячейка вернется в нормальное состояние.
Но еще раз, может быть, это не то, чего вы хотите достичь.
Если я не ошибаюсь, прочитайте ваш код, похоже, что ваш Форматирование cel7 - это незаразная строка. Поэтому, пожалуйста, попробуйте ваш oop как этот:
Cells.FormatConditions.Delete 'put this line before m loop
For m = 1 To x
For o = 1 To y
Cel7.Select
cf = Cel7.Address(0, 0)
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=NOT(ISBLANK(" & cf & "))"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Application.WindowState = xlMaximized
Set Cel7 = Cel7.Offset(4, 0)
Next o