2017-12-20 10 views
0

xlsxファイル形式のOutlook添付ファイル(単一ファイル)を保存しようとしていますが、Save as Mehtode of workbook class failedの行にwb.saveAsというエラーが表示されます。誰か助けが必要です。ワークブッククラスのメソッドとして保存できません - Outlook vba

Public Sub saveAttachtoDisk(itm As Outlook.MailItem) 
     Dim objAtt As Outlook.Attachment 
     Dim objExcel As Object 
     Dim wb As Object 
     Dim saveFolder As String, dateFormat As String, fName As String 
     saveFolder = "D:\Ashok\Work\Capital\Collection\" 

     For Each objAtt In itm.Attachments 
     sFileName = LCase(objAtt.FileName) 

      sPathName = saveFolder & sFileName 
      objAtt.SaveAsFile sPathName 


    Set objExcel = CreateObject("Excel.Application") 
      Set wb = objExcel.Workbooks.Open(sPathName) 

' error on below line 

      wb.SaveAs FileName:=Replace(sPathName, ".csv", ".xlsx"), FileFormat:=xlOpenXMLWorkbook 
       wb.Close SaveChanges:=True 


      Kill sPathName 
      objExcel.Quit 

    Next 
    End Sub 
+1

を定義しました。拡張機能をCSVからXLSXに変更しています。しかし、CSVファイルはワークブックではありません。 Windowsのデフォルトでは、ExcelはワークブックのようにCSVファイルを開くため、拡張機能を単独で使用しないでください。 –

答えて

0

は最終的に私は答えました:ツールでmicrosoft excel libraryを追加すると、私は、これは推測です試したことのないwb as workbook

+0

私はライブラリを追加する唯一の理由は、Outlookが 'xlOpenXMLWorkbook'の意味を知っているからです。あなたが 'wb.SaveAs FileName:= Replace(sPathName、" .csv "、" .xlsx ")、FileFormat:= 51'を使ったなら、元のコードはうまくいきました。このような場合、私は通常、イミディエイトウィンドウをExcelで開き、 '?xlOpenXMLWorkbook'と入力すると、使用する必要がある番号が返されます。 –

関連する問題