我有一个vba宏,它复制最后一个单元格值并用红色突出显示粗体文本

时间:2016-02-06 18:43:25

标签: vba excel-vba excel

我有一个VBA宏代码,它复制最后一个单元格值并用红色突出显示粗体文本。

在最后一个单元格中出现一个问题,尽管它会复制分组单元格的最后一个单元格值,但它无法用红色突出显示粗体文本。

检查屏幕截图: http://i.stack.imgur.com/YdQJk.jpg enter image description here

这是VBA代码:

Sub copy_down()
    Dim r As Range, rr As Range, N As Long
    N = Cells(Rows.Count, "A").End(xlUp).Row
    Set r = Range(Cells(1, "A"), Cells(N, "A")).SpecialCells(xlCellTypeBlanks)

    For Each rr In r
        with rr
            .FillDown
            .Font.Bold = True
            .Font.Color = RGB(255, 0, 0)
        end with
    Next

    Cells(N + 1, "A").FillDown
End Sub

请检查代码,并建议我该怎么办?

2 个答案:

答案 0 :(得分:0)

我假设你提供的代码中前面的图片有空白,然后你想用上面的单元填充空白并将其颜色为红色和粗体。包括在最后一个单元格下方。

这是我使用您提供的代码获得的图片。

enter image description here

这是我对如何做到这一点的解释。

Sub Blank_It()
    Dim r As Range, rr As Range, N As Long

    N = Cells(Rows.Count, "A").End(xlUp).Row + 1
    Set r = Range(Cells(1, "A"), Cells(N, "A"))

    For Each rr In r.Cells

        If IsEmpty(rr) Then

            With rr
                .Value = .Offset(-1).Value
                .Font.Bold = True
                .Font.Color = RGB(255, 0, 0)
            End With

        End If

    Next rr

End Sub

答案 1 :(得分:0)

要完成我认为您尝试使用原始代码(包括.FillDown)的内容,请在N语句中的Set r添加一个代码。然后不需要最后一个.filldown

Sub copy_down()
    Dim r As Range, rr As Range, N As Long
    N = Cells(Rows.Count, "A").End(xlUp).Row
    Set r = Range(Cells(1, "A"), Cells(N + 1, "A")).SpecialCells(xlCellTypeBlanks)

    For Each rr In r
        with rr
            .FillDown
            .Font.Bold = True
            .Font.Color = RGB(255, 0, 0)
        end with
    Next

End Sub