宏至格式化细胞宽度



我使用宏记录仪记录了我需要将某些列格式为$并自动拟合列的宏。但是,当我尝试从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

与斯科特·克兰纳(Scott Craner)的评论一样,您需要包括先例。但是,您可以通过删除使用块并使用工作表限定符

来缩短这一点代码
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

最新更新