条件格式 - 跳过空单元格/值

时间:2018-04-10 17:44:20

标签: excel excel-vba vba

我是宏的新手。我创建了一个非常简单的宏,它允许在工作表中格式化一系列单元格。宏在工作表中工作正常但是当我将文档保存为csv文件时,有几个尾随逗号。我知道尾随逗号是使用工作表的空值进行格式化的结果。我需要宏只格式化包含数据的单元格,但我还需要保留单元格的范围。这可能吗?我已经尝试了条件格式,CountA公式,IsEmpty宏和Is / Then / Else宏,但似乎没有任何效果。我提供了一个我一直在使用的数据示例,任何帮助将不胜感激。

Sub FormatDollarAmount()

    Set MyCellRange = Range("F2:F51")

    If (Not (IsEmpty("F2:F51"))) Then

        Range("F2:F51").NumberFormat = "#,##0.00;_(@_)"

    Else

    End If

End Sub

2 个答案:

答案 0 :(得分:0)

你可以遍历细胞:

Sub FormatDollarAmount()
    Set MyCellRange = Range("F2:F51")
    For each myCell in myCellRange
        If (Not (IsEmpty(myCell))) Then
            myCell.NumberFormat = "#,##0.00;_(@_)"
        Else

        End If
    Next myCell
End Sub

答案 1 :(得分:0)

只要这是关于条件格式的标题,这里是一个条件格式响应,每次数据更改时都不需要重新运行。

with worksheets("sheet1")
    with .range(.cells(2, "F"), .cells(.rows.count, "F").end(xlup))
        .formatconditions.delete
        .FormatConditions.Add Type:=xlExpression, Formula1:="=sign(len($f2))"
        .FormatConditions(.FormatConditions.Count).numberformat = "#,##0.00;_(@_)"
    end with
end with