我有一个工作簿,其中有一列包含日期字符串,它本身是从另一个源复制为"粘贴为值";。我需要把日期转换成一个缩写的月份,比如1月、2月等。
我试着录制了它,但宏不理解公式的自动填充,所以如果数据的长度发生变化,行数变多或变少,那么它就不会填充所有的空格或过度填充
我尝试修改公式,使其包含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
Nevermind,通过一些谷歌搜索和常识,我使用了这个,它很有效:
Sub ChangeDate()
Set DateRange = Range([H2], [H2].End(xlDown))
DateRange.NumberFormat = "mmm"
End Sub
在这里发帖,以防其他人有这样一个简单的问题。