Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: cunfu2010

[已解决]把不规范日期转成规范日期

[复制链接]
 楼主| 发表于 2016-3-23 08:52 | 显示全部楼层
爱疯 发表于 2016-3-22 23:38
欠缺的只是无法判定2013112这种情况?
如果仅通过2013112这一个值,我觉得确实无法判断。

谢谢版主,那么晚了还回复,谢谢。
我觉得虽然无法直接判断,但遇到这种情况可以用选择提示:2013-01-12或2013-11-02,其他情况直接进行。
我只有想法,但代码写不出来,您能看看怎么写吗?
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2016-3-23 09:15 | 显示全部楼层
主要是不知你11楼想做什么?
你还是通过一个excel文件,来反映当前这个需求吧。
回复

使用道具 举报

 楼主| 发表于 2016-3-23 09:37 | 显示全部楼层
爱疯 发表于 2016-3-23 09:15
主要是不知你11楼想做什么?
你还是通过一个excel文件,来反映当前这个需求吧。

附件已上传

book1.rar

14.34 KB, 下载次数: 13

回复

使用道具 举报

发表于 2016-3-23 10:29 | 显示全部楼层
Sub test()
    MsgBox Format([a27], "0000-0-00")
    MsgBox Format([a27], "0000-00-0")
End Sub

是要这样吗?
回复

使用道具 举报

 楼主| 发表于 2016-3-23 10:50 | 显示全部楼层
爱疯 发表于 2016-3-23 10:29
Sub test()
    MsgBox Format([a27], "0000-0-00")
    MsgBox Format([a27], "0000-00-0")

不是这样,是在同一窗体显示,通过选择将结果录入B27,比如:2016-01-12按1录入,2016-11-02按2录入
回复

使用道具 举报

发表于 2016-3-23 11:05 | 显示全部楼层
Sub test()
    Dim x, y, z
    x = Format([a27], "0000-0-00")
    y = Format([a27], "0000-00-0")
    z = InputBox("是" & x & ",请输入1" & vbCrLf & _
                 "是" & y & ",请输入2", "提示", 1)
    [b27] = IIf(z = 1, x, y)
End Sub

1.rar (7.86 KB, 下载次数: 12)
回复

使用道具 举报

 楼主| 发表于 2016-3-23 11:14 | 显示全部楼层
本帖最后由 cunfu2010 于 2016-3-23 11:46 编辑
爱疯 发表于 2016-3-23 11:05
Sub test()
    Dim x, y, z
    x = Format([a27], "0000-0-00")

真是厉害,还有两个问题:
1、能否将B27录入的日期设置为“0000-00-00”格式
2、把这:201623这种格式,如何依据23>12而判断出正确日期为2016-02-03和如果是2013112,通过依据11<12,选择确定是2016-01-12,还是2016-11-2。
把代码融到book1.xls中去,做成通用的

book1.rar

14.34 KB, 下载次数: 9

回复

使用道具 举报

发表于 2016-3-23 14:02 | 显示全部楼层
当是7位数时,比如2013112,结果要么是日期值,要么为空,
而不可以是字符串,比如"2016-11-02或2016-01-12二选一"。


我是这么想的,写这段代码的目的,就是为了把不规范的日期转为规范日期,以便后用。
如果还让结果里有字符串,那么写这段代码就没有价值了。
回复

使用道具 举报

 楼主| 发表于 2016-3-23 14:36 | 显示全部楼层
爱疯 发表于 2016-3-23 14:02
当是7位数时,比如2013112,结果要么是日期值,要么为空,
而不可以是字符串,比如"2016-11-02或2016-01-1 ...

不好意思,是我没表述清楚。不要字符串,只要日期,那个字符串是二选一中的选项,结果只为其中的一个,就象选择提示那样,最后选定结果。


回复

使用道具 举报

发表于 2016-3-23 14:40 | 显示全部楼层
cunfu2010 发表于 2016-3-23 14:36
不好意思,是我没表述清楚。不要字符串,只要日期,那个字符串是二选一中的选项,结果只为其中的一个,就 ...

你的意思是不是,

当在转换过程中碰到7位数时,跳出一个对话框,其中有2个可选日期,手动选择其中1个作为结果,是吗?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 10:31 , Processed in 0.494256 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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