格式化单元格宽度的宏
Macro To Format Cell Width
我使用宏记录器来记录这个宏,我需要将一些列格式化为 $ 并自动调整这些列。但是,当我尝试从 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 Cramer 的评论一样,您需要包括前面的 .但是,您可以通过删除 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
我使用宏记录器来记录这个宏,我需要将一些列格式化为 $ 并自动调整这些列。但是,当我尝试从 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 Cramer 的评论一样,您需要包括前面的 .但是,您可以通过删除 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