ziyaxian 发表于 2009-12-29 17:12:00

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

本帖最后由 ziyaxian 于 2009-12-30 12:27 编辑

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

pusofalse 发表于 2009-12-29 19:37:27

50.12中的50是1950,01.03中的01为何是2001了?两者的界限在哪里?

ziyaxian 发表于 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.

ziyaxian 发表于 2009-12-30 08:17:28

转换完了以后再录入就没这问题了,能具体说一下怎么转吗?

顽固不化 发表于 2009-12-30 11:40:47

#include <Excel.au3>
$sFilePath1 = @ScriptDir & "\book1.xls"
$oExcel = _ExcelBookOpen($sFilePath1)
If @errorThen
    MsgBox(0, "错误!", "无法创建对象或文件不存在!")
    Exit
EndIf
$A=_ExcelReadSheetToArray($oExcel)
$hangmax=$A
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


ziyaxian 发表于 2009-12-30 12:26:56

谢谢,明白了

idream 发表于 2009-12-30 23:06:46

前来挣钱,感谢楼主

kodin 发表于 2009-12-31 01:35:13

:face (32):我见我们公司的小秘是用宏来解决的...

zhuxxpt 发表于 2011-11-1 12:11:23

好办法,谢谢您在
页: [1]
查看完整版本: 如何将EXCEL文本形式50.12转化为日期形式1950年12月