Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1807|回复: 5

[已解决]求助格式转换的VBA

[复制链接]
发表于 2012-9-23 10:05 | 显示全部楼层 |阅读模式
从系统中导出的日期格式是文本格式,请大师帮忙用VBA做一下,(用数据中的分列太麻烦了)
最佳答案
2012-9-23 10:16
  1. Sub test()
  2.     For x = 2 To Range("a65536").End(3).Row
  3.         For y = 1 To 3
  4.             Cells(x, y) = Format(Cells(x, y), "0000-##-##")
  5.         Next y
  6.     Next x
  7. End Sub
复制代码
如果直接在原单元格改,就用这个

文本格式转日期格式.rar

7.57 KB, 下载次数: 7

发表于 2012-9-23 10:14 | 显示全部楼层
文本格式转日期格式.rar (10.02 KB, 下载次数: 10)
回复

使用道具 举报

发表于 2012-9-23 10:16 | 显示全部楼层    本楼为最佳答案   
  1. Sub test()
  2.     For x = 2 To Range("a65536").End(3).Row
  3.         For y = 1 To 3
  4.             Cells(x, y) = Format(Cells(x, y), "0000-##-##")
  5.         Next y
  6.     Next x
  7. End Sub
复制代码
如果直接在原单元格改,就用这个
回复

使用道具 举报

发表于 2012-9-23 11:05 | 显示全部楼层
有时候也会碰到这种情况,曾用公式转换过。直接在原单元格中改更方便。学习了,谢谢各位!
回复

使用道具 举报

 楼主| 发表于 2012-9-23 11:37 | 显示全部楼层
lisachen 发表于 2012-9-23 10:16
如果直接在原单元格改,就用这个

谢谢大师,还想请教一下,日期数据向右对齐,水平居中
回复

使用道具 举报

发表于 2012-9-23 23:52 | 显示全部楼层
如果数据量很大,还是数组好:
Sub test()
Dim ar, i&, j&
ar = [a1].CurrentRegion
For i = 2 To UBound(ar)
    For j = 1 To 3
        ar(i, j) = Format(ar(i, j), "0000-00-00")
    Next j
Next i
Columns("a:c").ClearContents
[a1].Resize(i - 1, 3) = ar
End Sub
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 19:08 , Processed in 0.279066 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表