自动打开,更新和保存Excel工作簿

我想在Excel中自动修改列的数字格式。

Set excel = CreateObject("Excel.Application") Set oWB = excel.Workbooks.Open("E:\Docs\Invoice.csv") /* Excel Macro starts */ Columns("G:G").Select Selection.NumberFormat = "m/d/yyyy" Columns("H:H").Select Selection.NumberFormat = "0.00" /* Excel Macro ends */ oWB.save oWB.Application.Quit 

我使用命令行运行这个.vbs。 Excel文档不会被更新。
任何人都可以请帮我解决这个问题?

提前致谢

上面的代码中缺less的是您没有完全限定Excel对象。

vbs如何理解Columns("G:G")

这是你正在尝试? ( 未经testing – 只需直接input

 Dim objXLApp, objXLWb, objXLWs Set objXLApp = CreateObject("Excel.Application") Set objXLWb = objXLApp.Workbooks.Open("E:\Docs\Invoice.csv") '~~> Working with Sheet1 Set objXLWs = objXLWb.Sheets(1) With objXLWs '/* Excel Macro starts */ .Columns("G:G").NumberFormat = "m/d/yyyy" .Columns("H:H").NumberFormat = "0.00" '/* Excel Macro ends */ End With objXLWb.Save objXLWb.Close (False) Set objXLWs = Nothing Set objXLWb = Nothing objXLApp.Quit Set objXLApp = Nothing 

编辑 :我唯一担心的是,数字格式不会留下来,因为它是一个CSV文件。 你可能想把它保存为一个Excel文件?

尝试和testing

 Dim objXLApp, objXLWb, objXLWs Set objXLApp = CreateObject("Excel.Application") objXLApp.Visible = True Set objXLWb = objXLApp.Workbooks.Open("E:\Docs\Invoice.csv") '~~> Working with Sheet1 Set objXLWs = objXLWb.Sheets(1) With objXLWs .Columns("G:G").NumberFormat = "m/d/yyyy" .Columns("H:H").NumberFormat = "0.00" End With '~~> Save as Excel File (xls) to retain format objXLWb.SaveAs "C:\Sample.xls", 56 '~~> File Formats '51 = xlOpenXMLWorkbook (without macro's in 2007-2010, xlsx) '52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007-2010, xlsm) '50 = xlExcel12 (Excel Binary Workbook in 2007-2010 with or without macro's, xlsb) '56 = xlExcel8 (97-2003 format in Excel 2007-2010, xls) objXLWb.Close (False) Set objXLWs = Nothing Set objXLWb = Nothing objXLApp.Quit Set objXLApp = Nothing