自动打开、更新和保存Excel工作簿
我想在excel中自动修改列的数字格式自动打开、更新和保存Excel工作簿,excel,vbscript,Excel,Vbscript,我想在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 =
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文档未更新。谁能帮我解决这个问题
提前感谢以上代码中缺少的是您没有完全限定Excel对象 vbs如何理解什么是
列(“G:G”)
这就是你想要的吗?(未经测试-直接键入即可)
编辑:我唯一担心的是数字格式不会保留,因为它是一个CSV文件。您可能想将其保存为Excel文件
经过尝试和测试
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
您已经标记了
VBA
,但使用命令行说.vbs
。是哪一个?
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