Excel精英培训网

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

vba 日期格式识别问题

[复制链接]
发表于 2019-7-4 00:30 | 显示全部楼层 |阅读模式
1学分
就比如说下面这个,怎么分别显示06Jan2019和01Jun2019,感谢大佬们提供帮助。

Sub lalala()

    Dim prd

    prd = "06/01/2019"

    prd = Format(prd, "ddmmmyyyy")

    MsgBox prd

End Sub



最佳答案

查看完整内容

用cdate函数转换 dim ri as date ri=cdate("06/01/2019") 得到就是一个日类型的变量值,至于后续你打算如何显示它,取决于你如何设置单元格的日期格式了,在格式设定里,你可以选择多种显示格式。 因为是日期类型,用msgbox来显示并不合适,它只适合显示文本。 如果一定是要用Format,它会得到格式化后的文本,不是日期,比如: format("06/01/2019", "mmm d yyyy") 结果是 Jun 1 2019 format("06/01/2019", "mmm dd y ...
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2019-7-4 00:30 | 显示全部楼层
本帖最后由 hfwufanhf2006 于 2019-7-4 08:32 编辑

用cdate函数转换
dim ri as date
ri=cdate("06/01/2019")
得到就是一个日类型的变量值,至于后续你打算如何显示它,取决于你如何设置单元格的日期格式了,在格式设定里,你可以选择多种显示格式。
因为是日期类型,用msgbox来显示并不合适,它只适合显示文本。
如果一定是要用Format,它会得到格式化后的文本,不是日期,比如:
format("06/01/2019", "mmm d yyyy")   
结果是 Jun 1 2019
format("06/01/2019", "mmm dd yyyy")
结果是 Jun 01 2019
format("06/01/2019", "dd mm yyyy")

结果是 01 06 2019
从上面的规律你可以自行设定。
总之最后的结果都是文本,不能参与日期计算,而date是可以参与日期计算的。



回复

使用道具 举报

发表于 2019-7-4 18:10 | 显示全部楼层
回复

使用道具 举报

发表于 2019-7-5 07:46 | 显示全部楼层
稍改动一下就行了

Sub lalala()

    Dim prd

    prd = "06/01/2019"

    prd = Format(prd, "yyyy/mm/dd")

    MsgBox prd

End Sub
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 16:35 , Processed in 0.362220 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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