我使用宏录制器来记录这个宏,我需要将一些列格式化为$并自动调整列。但是,当我尝试从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
答案 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