2014-04-16 3 views
1

여기에 제 코드가 있지만, 어떤 이유로 saveas 라인에서 실패하고 있습니다 (오브젝트가 지원하지 않습니다 등). 코드 wb에서MS Access에서 .xls로 변환합니다.

Sub convertToXLS() 
    Dim wb As Object 
    Set wb = CreateObject("Excel.Application") 
    Dim strFile As String 
    strFile = "C:\path to my file\filename.csv" 

    wb.Workbooks.Open (strFile) 
    With wb 
     .SaveAs FileName:=Replace(strFile, ".csv", ".xls") 
     .Close True 
    End With 
    Set wb = Nothing 

End Sub 

답변

2

오히려 Excel.Workbook보다 Excel.Application 개체입니다. Excel.ApplicationSaveAs 메서드를 지원하지 않습니다. 사용자 대신 하나

Sub convertToXLS() 
    Dim xlApp As Object 
    Dim wb As Object 
    Dim strFile As String 

    Set xlApp = CreateObject("Excel.Application")   
    strFile = "C:\path to my file\filename.csv"  
    Set wb = xlApp.Workbooks.Open(strFile) 

    With wb 
     ' where 56 is value of excel constant xlExcel8 
     .SaveAs FileName:=Replace(strFile, ".csv", ".xls"), FileFormat:=56 
     .Close True 
    End With 
    'clean up 
    Set wb = Nothing 
    xlApp.Quit 
    Set xlApp = Nothing 
End Sub 
+0

그것은 일을하지만 난 .XLS를 열려고하면, 그것은 – MyNameIsKhan

+0

그래, 내 업데이트 된 대답을 확인해야합니다 파일 확장자는 다른 형식으로,'.SaveAs의 파일 이름 사용을 말한다 : = 바꾸기 (strFile, ".csv", ".xls"), FileFormat : = 56' –

+0

신경 쓰지 마세요. 그 파일 형식의 것이 문제를 해결했습니다. fileformat 56은 무엇입니까? .xls 형식? – MyNameIsKhan