2012-05-29 42 views
0

我想在Excel中为字体大小做一些条件格式化,但由于无法从格式菜单中完成,因此需要使用VBA完成。基于下一个单元格值的Excel VBA条件格式化

我有一个范围B6到无论多行,我想看看它旁边的单元格,看看它是否是空白的(列C)。如果是,则将单元格设置为粗体和11pt。如果不是空白,那么它需要是正常的和9点。

我的代码在一分钟只使最后一行粗体和11pt和列的其余部分,即使列C为空将是正常的9pt。

什么问题?顺便说一句我正在使用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 2​​007/10中也不可用。您必须使用VBA来更改字体大小。 –

回答

3

您的偏移参数是向后。您正在检查当前单元格下方的单元格。

+0

改变它,它的工作。非常感谢 – AdRock

+0

+ 1 :)不错的一个:) –

0

这不需要宏 - 您可以使用条件格式中的公式来完成此操作。

说你想强调在B列红色相邻的单元格时,C列的单元有“红”的值:

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

然后只需填写下来填充柄如常。

规则编辑器(2007):

enter image description here

+0

您不能使用条件格式在任何版本的Excel中更改字体大小。 –

+0

-1使用If语句。条件格式中的“条件”意味着你只是使用类似''= C6 =“红色”的东西。 –

+0

@DougGlancy足够公平的,我只是认为它读取更清楚。 – Widor

2

Here's how

注意的诀窍是使用一个单一的规则,编码的左上角单元

+1

您不能使用条件格式更改字体大小在任何版本的Excel中。 –

+0

该死的,你是对的!+1 – smirkingman

相关问题