标题:
vbs读取csv文件时文件内的日期改变了怎么解决?
[打印本页]
作者:
xiaowu010
时间:
2010-12-28 16:43
标题:
vbs读取csv文件时文件内的日期改变了怎么解决?
大家好,最近在用vbs将几个csv文件的内容粘到一个excel文件时出现了两个问题:
1. 打开的csv文件的日期内容变了,如原来是"28/12/2010 16:30:30",现在是"12-28 16:30:30",单元格格式还是"dd/mm/yyyy hh:mm:ss",若在单元格上手动双击一下又显示正常了,现在需要打开的时候就显示"28/12/2010 16:30:30"请教大家怎么处理?手动打开时没有这个问题。
2. 用vbs脚本打开csv文件时有的文件日和月反了,即原来是"28/12/2010 16:30:30",现在显示的是"12/28/2010 16:30:30",但单元格格式还是"dd/mm/yyyy hh:mm:ss",请教大家怎么处理,谢谢!
脚本如下:
Dim pExcel, file
Set pExcel = CreateObject("Excel.Application")
set file = pExcel.Workbooks.Open("date.csv")
作者:
powerbat
时间:
2010-12-31 02:11
与VBS无关,你直接用Excel打开也是一样。可能是Excel某些选项需要设置
作者:
Batcher
时间:
2010-12-31 09:44
把单元格的格式设置成Text试试
作者:
xiaowu010
时间:
2010-12-31 11:10
谢谢二位回复,手动打开csv文件日期是没有问题的,单元格的格式不能设为text,我需要将csv文件粘到一个excel模板,这个模板里需要根据日期来查找对应日期的其它单元格值。我用FormatDateTime函数处理一下可以矫正日期格式,但我的文件太多且每个文件里有几百行,处理完所有的需要很长时间,我考虑将打开csv文件用ecel>datea>from text导入同时录制宏,然后用VBS调用该VBA或把VBA转换成VBS来实现,不熟悉VBA的操作还在研究中,有熟悉的帮忙看看,谢谢!
以下是录制的VBA代码:
Sub Macro1()
'
' Macro1 Macro
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;D:\dstat.csv" _
, Destination:=Range("$A$1"))
.Name = "dstat"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
作者:
Batcher
时间:
2010-12-31 11:17
可以到ExcelHome论坛找人帮忙写个VBA
欢迎光临 批处理之家 (http://bathome.net./)
Powered by Discuz! 7.2