基于下一个单元格值的Excel VBA条件格式

时间:2012-05-29 15:34:48

标签: excel vba excel-vba

我正在尝试在Excel中对字体大小进行一些条件格式化,但是因为无法从格式菜单中看到它,所以需要使用VBA来完成。

我有一个范围B6到多行,我想查看旁边的单元格,看看它是否为空(C列)。如果是,则将单元格格式化为Bold和11pt。如果它不是空白则需要正常且9pt。

我的代码在分钟只使最后一行Bold和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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

Here's how

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

答案 2 :(得分:0)

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

当C列中的单元格值为“红色”时,假设您要突出显示B列中红色的相邻单元格:

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

然后像往常一样用填充手柄填充。

规则编辑(2007):

enter image description here