Измените формат даты столбца в файле 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
Другие вопросы по тегам