【发布时间】: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
【问题讨论】: