2012-05-29 4 views
0

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

У меня есть диапазон B6, как бы много строк, и я хочу посмотреть на ближайшую к нему ячейку и посмотреть, не пусто ли она (столбец C). Если он затем форматирует ячейку в Bold и 11pt. Если он не пуст, он должен быть нормальным и 9pt.

Мой код в минуту делает только последнюю строку Жирным шрифтом и 11pt, а остальная часть столбца, даже если столбец C пуст, будет нормальным 9pt.

Что происходит не так? BTW Я использую Excel 2003

Dim c As Range, rng 
Dim LASTROW As Long 

LASTROW = Cells(Rows.Count, 1).End(xlUp).Row 

Set rng = Range("B6:B" & LASTROW) 
For Each c In rng 
    If Len(c.Offset(1, 0)) = 0 Then 
     c.Font.Bold = True 
     c.Font.Size = 11 
    Else 
     c.Font.Bold = False 
     c.Font.Size = 9 
    End If 
Next c 
+1

* Вы можете * сделать это с условным форматированием, используя формулу – smirkingman

+1

Использование Excel 2003, поэтому опция изменения размера шрифта выделена серым цветом – AdRock

+1

Это также не доступно в XL 2007/10. Вам нужно использовать VBA для изменения размера шрифта. –

ответ

3

Ваши параметры смещения назад. Вы проверяете ячейку ниже текущей.

+0

Изменено, и это сработало. Большое спасибо – AdRock

+0

+ 1 :) Nice one :) –

0

Это не требует макроса - вы можете сделать это, используя формулу в условном форматировании.

Допустим, вы хотели, чтобы выделить смежную ячейку в столбце B красный, когда ячейка в столбце C имела значение «Red»:

=IF(C6="Red",TRUE,FALSE) 

затем просто заполнить вниз маркер заполнения, как обычно.

Редактор правил (2007):

enter image description here

+0

Вы не можете использовать условное форматирование для изменения размера шрифта в любой версии Excel. –

+0

-1 для использования оператора If. «Условный» в условном форматировании означает, что вы просто используете что-то вроде '' = C6 = «Red» '. –

+0

@DougGlancy достаточно справедливо, я просто думаю, что он читает более четко таким образом. – Widor

2

Here's how

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

+1

Вы не можете использовать условное форматирование для изменения шрифта размер в любой версии Excel. –

+0

Черт, ты прав! +1 – smirkingman

Смежные вопросы