我正在尝试在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
答案 0 :(得分:3)
您的偏移参数是向后的。您正在检查当前单元格下方的单元格。
答案 1 :(得分:2)
注意诀窍是使用单个规则,为左上角的单元格编码
答案 2 :(得分:0)
这不需要宏 - 您可以使用条件格式中的公式来执行此操作。
当C列中的单元格值为“红色”时,假设您要突出显示B列中红色的相邻单元格:
=IF(C6="Red",TRUE,FALSE)
然后像往常一样用填充手柄填充。
规则编辑(2007):