将一列日期数字转换为缩写月份
Posted
技术标签:
【中文标题】将一列日期数字转换为缩写月份【英文标题】:Convert a column of date numbers into abbreviated month 【发布时间】:2022-01-23 20:34:22 【问题描述】:对 VBA 非常陌生,因此对新手问题表示歉意。我有一个 Excel 工作簿,其中包含一个包含日期字符串的列 - 它本身是从另一个来源复制为“粘贴为值”。我需要将该日期编号转换为缩写月份 - 比如一月、二月等。
到目前为止,我已经尝试记录如何手动执行此操作的宏,但该宏不理解公式的自动填充,因此如果数据的长度发生变化,即更多或更少的行,那么它不会填写所有空格或过度填充它们。我尝试修改公式以包含 End(xlDown) 的整个范围,而不是它给出的固定范围,但随后所有行都被填充到最底部,这没有用。
这是我当前宏的代码,但我也愿意接受任何其他可以帮助我将所选行转换为缩写日期格式的解决方案!
Sub ConvertDateStringToMonth()
'
' ConvertDateStringToMonth Macro
'
'
Columns("I:I").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("I2").Select
ActiveCell.FormulaR1C1 = "=TEXT(RC[-1], ""mmm"")"
Range("I2").Select
Selection.AutoFill Destination:=Range([I2], [I2].End(xlDown))
Range([I2], [I2].End(xlDown)).Select
Range("H1").Select
Selection.AutoFill Destination:=Range("H1:I1"), Type:=xlFillDefault
Range("H1:I1").Select
Columns("I:I").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("H:H").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Range("H1").Select
End Sub
【问题讨论】:
【参考方案1】:没关系,通过一些谷歌搜索和常识,我使用了它并且它有效:
Sub ChangeDate()
Set DateRange = Range([H2], [H2].End(xlDown))
DateRange.NumberFormat = "mmm"
End Sub
在这里发帖以防其他人有这么简单的问题。
【讨论】:
以上是关于将一列日期数字转换为缩写月份的主要内容,如果未能解决你的问题,请参考以下文章
如何在包含单词、三个字母月份和两位数字年份的字符串中搜索月份和年份并将它们转换为 SQL 中的日期?
将 Pandas 系列日期时间“月份”数字转换为月份文本 [重复]