Excel VBA - 将日期转换为以 MMM YYYY 格式显示的文本
Excel VBA - Convert date to display as text in the form MMM YYYY
我想将 A 列或 A 范围从日期格式转换为显示为文本格式 MMM YYYY.
这是工作表布局:
但是,我 运行 代码没有发生任何变化:
Sub CONVERT_DATE()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Workbooks.Open ("MyWorkbook.xlsx")
Workbooks("MyWorkbook.xlsx").Activate
Dim ws As Worksheet
Set ws = Workbooks("MyWorkbook.xlsx").Sheets("MyWorkSheet")
Dim wsLastRow As Long
wsLastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
'Convert date to display as text in the format mmm yyyy
ws.Range("A2:A" & wsLastRow).Text = Format(ws.Range("A2:A" & wsLastRow).Text, "mmm yyyy")
Workbooks("MyWorkbook.xlsx").Close SaveChanges:=True
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
任何人都可以发现问题吗?
非常感谢!
使用 NumberFormat
而不是尝试设置 Text
Sub CONVERT_DATE()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Workbooks.Open ("MyWorkbook.xlsx")
Workbooks("MyWorkbook.xlsx").Activate
Dim ws As Worksheet
Set ws = Workbooks("MyWorkbook.xlsx").Sheets("MyWorkSheet")
Dim wsLastRow As Long
wsLastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
'Convert date to display as text in the format mmm yyyy
' change this line
ws.Range("A2:A" & wsLastRow).NumberFormat = "mmm yyyy"
Workbooks("MyWorkbook.xlsx").Close SaveChanges:=True
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
而不是这一行
ws.Range("A2:A" & wsLastRow).Text = Format(ws.Range("A2:A" & wsLastRow).Text, "mmm yyyy")
使用NumberFormat
更改范围的格式
ws.Range("A2:A" & wsLastRow).NumberFormat = "mmm yyyy"
我想将 A 列或 A 范围从日期格式转换为显示为文本格式 MMM YYYY.
这是工作表布局:
但是,我 运行 代码没有发生任何变化:
Sub CONVERT_DATE()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Workbooks.Open ("MyWorkbook.xlsx")
Workbooks("MyWorkbook.xlsx").Activate
Dim ws As Worksheet
Set ws = Workbooks("MyWorkbook.xlsx").Sheets("MyWorkSheet")
Dim wsLastRow As Long
wsLastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
'Convert date to display as text in the format mmm yyyy
ws.Range("A2:A" & wsLastRow).Text = Format(ws.Range("A2:A" & wsLastRow).Text, "mmm yyyy")
Workbooks("MyWorkbook.xlsx").Close SaveChanges:=True
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
任何人都可以发现问题吗?
非常感谢!
使用 NumberFormat
而不是尝试设置 Text
Sub CONVERT_DATE()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Workbooks.Open ("MyWorkbook.xlsx")
Workbooks("MyWorkbook.xlsx").Activate
Dim ws As Worksheet
Set ws = Workbooks("MyWorkbook.xlsx").Sheets("MyWorkSheet")
Dim wsLastRow As Long
wsLastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
'Convert date to display as text in the format mmm yyyy
' change this line
ws.Range("A2:A" & wsLastRow).NumberFormat = "mmm yyyy"
Workbooks("MyWorkbook.xlsx").Close SaveChanges:=True
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
而不是这一行
ws.Range("A2:A" & wsLastRow).Text = Format(ws.Range("A2:A" & wsLastRow).Text, "mmm yyyy")
使用NumberFormat
更改范围的格式
ws.Range("A2:A" & wsLastRow).NumberFormat = "mmm yyyy"