使用VBScript将CSV文件中列的date格式更改为yyyy-MM-dd

我正在尝试将date从06-10-2009 00:00:00转换为yyyy-MM-dd。 我需要通过命令行通过Salesforce Apex Data Loader自动导入数据。 因此,手动打开Excel并格式化列是不成问题的。

我已经尝试过使用下面的VBScript – 但它没有帮助。

Option Explicit Dim objExcel1, objWB, strPathExcel1, objSheet1 Set objExcel1 = CreateObject("Excel.Application") strPathExcel1 = "C:\Path\To\File\Details.csv" Set objWB = objExcel1.Workbooks.Open(strPathExcel1) Set objSheet1 = objWB.Worksheets(1) objExcel1.Visible = True objSheet1.Columns("E:E").NumberFormat = "yyyy-MM-dd" objWB.Save objWB.Close objExcel1.Quit 

我根本不知道任何VB脚本。 我需要做的就是将CSV列的date格式转换为yyyy-MM-dd。 另外我需要从Windowsbatch file调用脚本。 我会很感激,如果有人简要添加如何从batch file调用VBScript。

  • 此代码将使用TEXT公式转换date格式
  • 根据这个MSFT链接,你应该直接在你的应用程序中使用这个CSV文件 – 如果你在Excel中重新打开date字段将inheritance你的区域date设置

更改您的文件path和单元格范围以适应

 Dim objExcel1, objWB, strPathExcel1, objSheet1 Set objExcel1 = CreateObject("Excel.Application") objExcel1.DisplayAlerts = False strPathExcel1 = "C:\temp\book4.csv" Set objWB = objExcel1.Workbooks.Open(strPathExcel1) Set objSheet1 = objWB.Worksheets(1) With objSheet1.Range("E1:E100") .Columns.Offset(0, 1).Insert .Offset(0, 1).FormulaR1C1 = "=IF(LEN(RC[-1])>0,TEXT(RC[-1],""yyyy-mm-d""),"""")" .Offset(0, 1).Copy .PasteSpecial -4163 .Columns.Offset(0, 1).Delete End With objWB.Save objWB.Close objExcel1.DisplayAlerts = True objExcel1.Quit 
Interesting Posts