如何基于同一行中的另一个单元格在一个单元格中加粗

时间:2018-02-16 15:35:05

标签: vba if-statement

我试图加粗多行单元格的最后一行(列E),但具体是基于同一行(列L)中的另一个单元格是否为空/空。我有工作代码,只是粗略的最后一行,但试图合并IF部分让我卡住了。这是我到目前为止,它一直给我一个数据不匹配错误。

提前感谢您的任何帮助或建议。

Sub BoldLastLine1()
Dim p As Long
Dim r As Range

For Each r In ActiveSheet.Range("A3:L100")
    If Len(Trim(ActiveSheet.Cells(r, 12).Value)) <> 0 Then

        p = InStrRev(r.Value, vbLf)
        If p > 0 Then
            With r.Characters(p + 1, Len(r.Value) - p).Font
                .Bold = True
                .Size = 16
            End With
        End If
    End If
Next

MsgBox ("Updates Completed.")

End Sub

1 个答案:

答案 0 :(得分:2)

工作表或范围的cells - 属性需要行和列的2个数字参数。 您正在定义范围r并将其作为第一个参数传递,这会导致错误。 你可以使用例如

If Len(Trim(ActiveSheet.Cells(r.Row, 12).Value)) Then

这指向范围r

行的第12列(= L)中的单元格

更新: Cells也接受一个字符串作为第二个参数,你也可以写

If Len(Trim(ActiveSheet.Cells(r.Row, "L").Value)) Then