版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

今天上班的时候需要处理一张表:

需要把里面日期一栏修改为yyyymmdd形式,表中的日期数据也就是有三种
1、2019/1/9,但是设置了单元格的日期格式,显示为2019年1月9日,如第1行。
2、2017年6月20日,直接就是文本的2017年6月20日,如第14行。
3、2017.2.23,如第18行
三种日期数据格式在原表中交错的,总共有几千行,如果只有那20几行我也就手动修改了,几千行太累了,只有祭出vba了。
按照这三种不同的数据分别处理即可:

Sub ??1()
'
' ??1 ??
'
Dim i As Integer
Dim fsrq As String
Dim fsrq2 As StringDim pos1 As Integer
Dim pos2 As Integer
Dim pos3 As IntegerDim y As String
Dim m As String
Dim d As StringFor i = 1 To 26fsrq = Sheets("sheet1").Range("E" & i).ValueIf InStr(fsrq, "??") Thenpos1 = InStr(fsrq, "??")pos2 = InStr(fsrq, "??")pos3 = InStr(fsrq, "??")y = Left(fsrq, pos1 - 1)m = Mid(fsrq, pos1 + 1, pos2 - pos1 - 1)d = Mid(fsrq, pos2 + 1, pos3 - pos2 - 1)If Len(m) = 1 Then m = "0" & mIf Len(d) = 1 Then d = "0" & dfsrq2 = y & m & dElseIf InStr(fsrq, ".") Thenpos1 = InStr(fsrq, ".")pos2 = InStr(pos1 + 1, fsrq, ".")y = Left(fsrq, pos1 - 1)m = Mid(fsrq, pos1 + 1, pos2 - pos1 - 1)d = Right(fsrq, Len(fsrq) - pos2)If Len(m) = 1 Then m = "0" & mIf Len(d) = 1 Then d = "0" & dfsrq2 = y & m & dElsefsrq = Format(fsrq, "yyyymmdd")fsrq2 = Replace(fsrq, "/", "")End IfSheets("sheet1").Range("F" & i).Value = fsrq2
Next
'
End Sub

运行后的效果:

可见格式如 2019/1/9 的数据显示有问题。如果双击########的数据,也会显示正确:

显然不是我们需要的,查看单元格格式,可以看到excel把这项仍然处理为日期,这时候想起我之前删除的F列也是日期。
如果用现在的代码,那么两个方法可以解决:1、将F列先修改格式为文本;2、删除F列,这样新的F列就没有日期格式。然后在运行代码。
当然我们更可以直接用代码解决,修改后的代码如下:

Sub ??1()
'
' ??1 ??
'
Dim i As Integer
Dim fsrq As String
Dim fsrq2 As StringDim pos1 As Integer
Dim pos2 As Integer
Dim pos3 As IntegerDim y As String
Dim m As String
Dim d As StringFor i = 1 To 26fsrq = Sheets("sheet1").Range("E" & i).ValueIf InStr(fsrq, "??") Thenpos1 = InStr(fsrq, "??")pos2 = InStr(fsrq, "??")pos3 = InStr(fsrq, "??")y = Left(fsrq, pos1 - 1)m = Mid(fsrq, pos1 + 1, pos2 - pos1 - 1)d = Mid(fsrq, pos2 + 1, pos3 - pos2 - 1)If Len(m) = 1 Then m = "0" & mIf Len(d) = 1 Then d = "0" & dfsrq2 = y & m & dElseIf InStr(fsrq, ".") Thenpos1 = InStr(fsrq, ".")pos2 = InStr(pos1 + 1, fsrq, ".")y = Left(fsrq, pos1 - 1)m = Mid(fsrq, pos1 + 1, pos2 - pos1 - 1)d = Right(fsrq, Len(fsrq) - pos2)If Len(m) = 1 Then m = "0" & mIf Len(d) = 1 Then d = "0" & dfsrq2 = y & m & dElsefsrq = Format(fsrq, "yyyymmdd")fsrq2 = Replace(fsrq, "/", "")End IfSheets("sheet1").Range("F" & i).NumberFormatLocal = "@"Sheets("sheet1").Range("F" & i).Value = fsrq2
Next
'
End Sub

只需要添加一行代码: Sheets("sheet1").Range("F" & i).NumberFormatLocal = "@",让单元格格式为文本。
所有日期都可以转换成功了,运行后如下:

都是简单的vba语句,也许有朋友用得上

vba 转换多种格式日期相关推荐

  1. mov和mp4格式哪个好_在线视频格式转换器哪个好?求一个能转换多种格式的工具...

    原标题:在线视频格式转换器哪个好?求一个能转换多种格式的工具 在网络上,大家见到.接触到的视频格式估计也有十几种了,它们所支持.兼容的设备.软件大多不相同.以前,我们还不懂转换格式的时候,习惯了视频格 ...

  2. mov和mp4格式哪个好_在线视频格式转换器哪个好?求一个能转换多种格式的工具_mrxiang...

    在网络上,大家见到.接触到的视频格式估计也有十几种了,它们所支持.兼容的设备.软件大多不相同.以前,我们还不懂转换格式的时候,习惯了视频格式迁就播放器--格式不对的话,就重新找过视频.现在,视频格式不 ...

  3. 根据当前日期进行以下方面的处理: 1、取得日期的年份、月份、天、时、分、秒,并转换成大写日期格式 如:2013年8月17日 20时30分20秒 2、根据日期的不同时间段,做问候语: 早上8:00-12

    根据当前日期进行以下方面的处理: 1.取得日期的年份.月份.天.时.分.秒,并转换成大写日期格式 如:2013年8月17日 20时30分20秒 2.根据日期的不同时间段,做问候语: 早上8:00-12 ...

  4. vba html 转化为 xlsx,使用VBA批量转换Excel格式,由.xls转换成.xlsx

    问题分析: Excel2007以前的格式是.xls,之后的格式是.xlsx.打开单独的一个Excel文档,使用"另存为"功能,可以很轻松的转换格式.但是面对几百个Excel表这样就 ...

  5. PDF怎么转换成PPT?用迅读PDF转换器,多种格式轻松互转

    提起PDF,相信大家都很熟悉,尤其是上班族.大学生.教师群体,经常都需要用PDF软件进行阅读.注释.转换等.以大学生为例,不仅日常需要用PDF格式分享文档,写毕业论文整理资料时,也需要将PDF文件转换 ...

  6. SQL Server 将JDE日期格式转换成常见日期格式

    SQL Server 将JDE日期格式转换成常见日期格式 JDE日期格式:JDE所有的日期字段在DB存储时用的是Julia date格式,总共6码,第一码代表世纪,二三码代表年份,后三码代表前三码所属 ...

  7. JAVA日期转换中文格式

    JAVA日期转换中文格式 例:2000-1-11 --> 二〇〇〇年一月十一日 创建枚举类 创建工具类 例:2000-1-11 --> 二〇〇〇年一月十一日 创建枚举类 public en ...

  8. 《power BI视频5》筛选函数、转换函数、日期格式

    筛选函数 HASONEFILTER函数 HASONEFILTER(列名) 当指定列有且只有一个由直接筛选产生的值时,返回true. 此处的列只能是实体列 例如: 总金额 = SUM('案例2'[销售金 ...

  9. 电脑上如何转换视频格式?万兴优转-适配多种设备及批量高速转换

    经常在网上冲浪的小伙伴应该都对视频有一些了解,视频不只有一种格式,它可以是AVI.RMVB.RM.ASF.MKV.WMV,亦或者是MP4.3GP.FLV等等等等.这些格式的视频质量.容量各不相同,应用 ...

最新文章

  1. 爬虫python爬取页面请求_Python网络爬虫第三弹《爬取get请求的页面数据》
  2. c语言子程序return,c语言return返回到哪
  3. 【跃迁之路】【724天】程序员高效学习方法论探索系列(实验阶段481-2019.2.14)...
  4. php怎么新建页面,whmcs创建自定义页面,创建PHP访问页面方法
  5. Java多线程-线程通信
  6. 【php7扩展开发三】ini配置
  7. C语言 项目练习-家庭收支软件
  8. Google 推出数据集搜索!百度怎么看?
  9. ubuntu 下的开发板的环境配置
  10. 利用维基百科挖掘概念之间的先决条件关系(初探)
  11. 47页数字孪生人脸识别轨迹分析电子围栏智慧工地解决方案
  12. 基于 Retina-GAN 的视网膜图像血管分割
  13. windows错误代码一览表
  14. dell r720光盘启动项_Dell R720服务器安装操作系统
  15. lisp 圆柱螺旋线_Visual LISP开发三维圆柱螺旋线程序
  16. 服务器端返回的状态码是什么意思
  17. 父子组件传值之(子传父)
  18. 2021年煤气考试题库及煤气免费试题
  19. 网站密码明文传输解决方案js+java
  20. 第六次作业--结对编程第二次作业

热门文章

  1. python取整方法
  2. java装饰者模式服装搭配,学习、探究Java设计模式——装饰者模式
  3. 机器学习2021-李宏毅教授01
  4. 【ROG】关闭睡眠时键盘背光
  5. 智能生活 App SDK 之家庭信息管理接口(全)
  6. 淘宝上线语音聊天功能
  7. 寻找5个数的中位数,只需6次比较的,思路与实现
  8. 阻塞队列和非阻塞队列
  9. 三星a70s升级android 10,三星发布Android 10系统升级计划,S10系列于明年1月最早尝鲜...
  10. iPhone12国行版和美版有什么不同 iPhone12国行版价格汇总