Board logo

标题: 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://bbs.bathome.net/) Powered by Discuz! 7.2