找回密码
 加入
搜索
查看: 2708|回复: 12

如何将EXCEL文本形式50.12转化为日期形式1950年12月

 火.. [复制链接]
发表于 2009-12-29 17:12:00 | 显示全部楼层 |阅读模式
本帖最后由 ziyaxian 于 2009-12-30 12:27 编辑

想批量转一个EXCEL表中的日期,所有的日期都以XX.XX形式存在,如何批量转成日期形式呢?01.03转成2001年03月,等待解决!!!

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2009-12-29 19:37:27 | 显示全部楼层
50.12中的50是1950,01.03中的01为何是2001了?两者的界限在哪里?
 楼主| 发表于 2009-12-29 20:33:33 | 显示全部楼层
本帖最后由 ziyaxian 于 2009-12-29 20:35 编辑

回复 2# pusofalse

一个是参加工作的时间,50.12代表1950年12月,那一个是退休的时间,01.03代表2001年3月,这个表有几百人,当时编表的人为了省事弄的,现在想算出工龄,我想转一下再算,不知道有别的方法没有
发表于 2009-12-29 22:19:29 | 显示全部楼层
确实界定上有些问题,如果没有以后的日期,年份可以这样处理,对大于20的前面加19,小于20的前面加20.
 楼主| 发表于 2009-12-30 08:17:28 | 显示全部楼层
转换完了以后再录入就没这问题了,能具体说一下怎么转吗?
发表于 2009-12-30 11:40:47 | 显示全部楼层
#include <Excel.au3>
$sFilePath1 = @ScriptDir & "\book1.xls" 
$oExcel = _ExcelBookOpen($sFilePath1)
If @error  Then
    MsgBox(0, "错误!", "无法创建对象或文件不存在!")
    Exit
EndIf
$A=_ExcelReadSheetToArray($oExcel)
$hangmax=$A[0][0]
For $i=1 To $hangmax
        $YData=_ExcelReadCell($oExcel,$i,3)
        If StringRegExp($YData,"\d\d.\d\d") Then
                If Number(StringLeft($YData,2))>=20 Then
                        $Ndate="19"&$YData
                Else
                        $Ndate="20"&$YData
                EndIf
                _ExcelWriteCell($oExcel,$Ndate,$i,3)
        EndIf
Next

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +15 收起 理由
afan + 15

查看全部评分

 楼主| 发表于 2009-12-30 12:26:56 | 显示全部楼层
谢谢,明白了
发表于 2009-12-30 23:06:46 | 显示全部楼层
前来挣钱,感谢楼主
发表于 2009-12-31 01:35:13 | 显示全部楼层
我见我们公司的小秘是用宏来解决的...
发表于 2011-11-1 12:11:23 | 显示全部楼层
好办法,谢谢您在
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-29 21:33 , Processed in 0.315767 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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