0

我正在尝试在 Excel 中对字体大小进行一些条件格式设置,但由于无法从格式菜单中完成,因此需要使用 VBA 完成。

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

我现在的代码只使最后一行粗体和 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
4

3 回答 3

3

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

于 2012-05-29T15:39:07.403 回答
2

就是这样

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

于 2012-05-29T15:45:30.057 回答
0

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

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

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

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

规则编辑器(2007):

在此处输入图像描述

于 2012-05-29T15:40:56.590 回答