2012-09-07 4 views
4

엑셀에서 열의 숫자 형식을 자동으로 수정하고 싶습니다.자동으로 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 문서가 업데이트되지 않습니다.
누구든지이 문제를 해결할 수 있도록 도와 주시겠습니까? 위의 코드에서 누락 무엇 사전

+2

테스트 완료 'VBA'하지만 .VBS이 명령 line'을 사용하여'말한다. 무엇 이니? –

답변

7

에서

덕분에 당신은 완전히 Excel 개체 자격을 갖춘되지 않습니다.

어떻게 vbs가 Columns("G:G")이 무엇인지 이해합니까?

이게 너가하려는거야?

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 파일 그대로의 NumberFormat가 유지되지 것입니다. 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 
+0

+1 - 자격에 동의합니다. – brettdj

+0

감사합니다 Siddharth .. 그것은 예상대로 일했습니다 :) –

관련 문제