宏格式化单元格宽度

时间:2016-12-06 19:15:00

标签: excel vba excel-vba macros excel-2013

我使用宏录制器来记录这个宏,我需要将一些列格式化为$并自动调整列。但是,当我尝试从VBE执行此宏时,不会发生格式更改。在这种语法中应该改变什么来正确格式化我的数据?

Public Function Format()

Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets

With ws
    Cells.Select
    Cells.EntireColumn.AutoFit
    Columns("D:M").Select
    Selection.NumberFormat = "$#,##0"
    Range("A1").Select
End With

Next

End Function

1 个答案:

答案 0 :(得分:2)

与Scott Craner的评论一样,你需要包括前面的内容。但是,您可以通过删除with块并使用工作表限定符

来缩短此代码
Public Sub Format()
    Dim ws As Worksheet
    For Each ws In ActiveWorkbook.Worksheets
        ws.Cells.Columns("D:M").NumberFormat = "$#,##0"
        ws.Cells.EntireColumn.AutoFit
        ws.Activate
        ws.Range("A1").Select
    Next
End Sub