Excel精英培训网

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

[已解决]用VBA转换日期

[复制链接]
发表于 2014-10-25 09:36 | 显示全部楼层 |阅读模式
本帖最后由 guogongyi 于 2014-10-25 18:54 编辑

用VBA将表一中的所有日期转换成20130722,不要中间的横杠。我有2000行,数量多。谢谢


最佳答案
2014-10-25 09:56
Sub test()
Dim rng As Range
Dim irow, icol
irow = Cells(Rows.Count, 1).End(xlUp).Row
icol = Cells(1, Columns.Count).End(xlToLeft).Column
For Each rng In Range(Cells(1, 1), Cells(irow, icol))
    If IsDate(rng) Then rng = Format(rng, "yyyymmdd")
Next
Range(Cells(1, 1), Cells(irow, icol)).NumberFormatLocal = "G/通用格式"
End Sub

用VBA转换日期.rar

19.87 KB, 下载次数: 29

发表于 2014-10-25 09:56 | 显示全部楼层    本楼为最佳答案   
Sub test()
Dim rng As Range
Dim irow, icol
irow = Cells(Rows.Count, 1).End(xlUp).Row
icol = Cells(1, Columns.Count).End(xlToLeft).Column
For Each rng In Range(Cells(1, 1), Cells(irow, icol))
    If IsDate(rng) Then rng = Format(rng, "yyyymmdd")
Next
Range(Cells(1, 1), Cells(irow, icol)).NumberFormatLocal = "G/通用格式"
End Sub

评分

参与人数 1 +3 收起 理由
guogongyi + 3 很给力!

查看全部评分

回复

使用道具 举报

发表于 2014-10-25 10:05 | 显示全部楼层
本帖最后由 xdragon 于 2014-10-25 10:07 编辑
  1. Sub t()
  2.     Dim arr, col%, r&
  3.     With Sheets("表一")
  4.         arr = .Range("A1").CurrentRegion.Value
  5.         For r = 1 To UBound(arr)
  6.             For col = 1 To UBound(arr, 2)
  7.                 If IsDate(arr(r, col)) Then arr(r, col) = Format(arr(r, col), "yyyymmdd")
  8.             Next
  9.         Next
  10.         .Range("A1").Resize(UBound(arr), UBound(arr, 2)) = arr
  11.         .Range("A1").Resize(UBound(arr), UBound(arr, 2)).NumberFormatLocal = "G/通用格式"
  12.     End With
  13. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
guogongyi + 3 很给力!

查看全部评分

回复

使用道具 举报

发表于 2014-10-25 10:09 | 显示全部楼层
本帖最后由 xdragon 于 2014-10-25 10:10 编辑
  1. Sub test2()
  2.     Cells.NumberFormatLocal = "yyyymmdd"
  3. End Sub
复制代码
还有个方法是障眼法(实际单元格还是日期格式的,这样也便于日期的筛选),缺点是如果要输入数值型的数字就显示不正常了{:071:}

评分

参与人数 1 +3 收起 理由
guogongyi + 3 很给力!

查看全部评分

回复

使用道具 举报

发表于 2014-10-25 10:10 | 显示全部楼层
楼上的代码都能满足楼主了!
回复

使用道具 举报

发表于 2014-10-25 10:50 | 显示全部楼层
建议不要改变,这样方便以后的日期运算等
非得改变的话,格式,自定义:“yyyymmdd”

评分

参与人数 1 +3 收起 理由
guogongyi + 3 赞一个!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-10-25 18:56 | 显示全部楼层
谢谢各位的热情帮助,最佳只能给一个,对不起各位了,只能给评分了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 02:22 , Processed in 0.283335 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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