Измените формат даты столбца в файле CSV на yyyy-MM-dd, используя VBScript
Я пытаюсь преобразовать дату с 06.10.2009 по 00:00:00 в гггг-мм-дд. Мне это нужно для автоматического импорта данных через 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 Scripting. Все, что мне нужно сделать, это преобразовать формат даты столбца CSV в yyyy-MM-dd. Также мне нужно вызвать скрипт из пакетного файла Windows. Я был бы признателен, если бы кто-нибудь кратко добавил, как вызывать VBScript из пакетного файла.
1 ответ
- Этот код преобразует формат даты, используя
TEXT
формула - По этой ссылке MSFT вы должны затем использовать этот CSV-файл в вашем приложении напрямую - если вы откроете его снова в Excel, поле даты унаследует ваши региональные настройки даты
измените путь к файлу и диапазон ячеек в соответствии с
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