我有一个excel文档,第一列格式化:
date
2017-08-01
2017-08-01
2017-08-01
2017-08-01
2017-08-01
我所做的是将整个列复制到文本文档并将其粘贴回工作表。 Tt自己修复了日期格式,完美地回来了:
DATE
01/08/2017
01/08/2017
01/08/2017
01/08/2017
01/08/2017
我已经尝试在excel(dd / mm / yyyy)中编写单元格并记录宏,没有任何作用,只有切割和粘贴到记事本上,现在我需要通过vba实现这一点,我尝试了正常:
Range("a2:a5").Select
Selection.NumberFormat = "@"
但它没有用,有什么建议吗?
答案 0 :(得分:1)
如果日期存储为文本,您可以将它们乘以1(或加0)然后格式化。对范围的计算让Excel知道它正在处理数字。
代码取自Multiply Entire Range By Value?
Sub Test()
Dim rData As Range
Set rData = ThisWorkbook.Worksheets("Sheet1").Range("A2:A5")
rData = Evaluate(rData.Address & "*1")
rData.NumberFormat = "dd/mm/yyyy"
End Sub
答案 1 :(得分:0)
除了Evaluate
转换文本到number的方法之外:
[a2:a6] = [--a2:a6]
[a2:a6].NumberFormat = "dd/mm/yyyy"
还有复制空白单元格并在Add
对话框中选择Paste Special
的Excel方法:
[b1].Copy ' copy blank cell
[a2:a6].PasteSpecial , xlPasteSpecialOperationAdd ' and add it to the destination range
[a2:a6].NumberFormat = "dd/mm/yyyy"