2017-08-17 10 views
2

I持ちのVBScriptで次のコード:のVBScriptでExcelファイルを作成しますが、破損したファイルを生成し

Set ExcelObject=CreateObject("Excel.Application") 
    ExcelObject.visible=False 
    ExcelObject.WorkBooks.Add 
    ExcelObject.Sheets(1).Cells(1,1).value="1" 
    ExcelObject.Sheets(1).Cells(1,2).value="2" 
    ExcelObject.Sheets(1).Cells(1,3).value="3" 
    ExcelObject.Sheets(1).Cells(1,4).value="4" 
    ExcelObject.Sheets(1).Cells(2,1).value="5" 
    ExcelObject.Sheets(1).Cells(2,2).value="6" 
    ExcelObject.Sheets(1).Cells(2,3).value="7" 
    ExcelObject.Sheets(1).Cells(2,4).value="Y" 

    For x=0 to testData.Count-1 
     ExcelObject.Sheets(1).Cells(x+3,1).value=testData(x) 
     ExcelObject.Sheets(1).Cells(x+3,2).value="Constant" 
     ExcelObject.Sheets(1).Cells(x+3,4).value="Y" 
    Next 

    ExcelObject.Activeworkbook.Sheets(1).Name = "Name" 
    ExcelObject.Activeworkbook.SaveAs(path+"Data.xls") 
    ExcelObject.Quit() 
    Set ExcelObject=Nothing 

、けれども私はエクセルで、このスプレッドシートを開いた後、私は次のエラーを取得: ファイル形式をと"Data.xls"の拡張子が一致しません。ファイルが訂正または不安定になる可能性があります ...

また、このデータシートはUFT HPからインポートできません。私は、Excelファイルがどのように生成されているのかということで、この問題の可能性があると思います。

私はそれを修正するために何ができますか?

+1

xlsxとして保存してください。 QTP(現在HP-UFTは)名前を付けて保存コマンドのファイルタイプのパラメータを使用し、その後XLS – Jeeped

+0

私は具体的には、xlsファイルにする必要があります。ヒント:.xls拡張子は含めないでください。あなたが正しいコードを取得した場合、Excelは正しいものをそこに置きます。 – JoaoFilipeClementeMartins

+1

であることを、それを必要とする – Jeeped

答えて

2

保存する必要があります。FileFormatxlExcel8 xlExcel8は56に相当します(VBスクリプトにはxlExcel8のリファレンスがないため)。

ExcelObject.Activeworkbook.SaveAs(path+"Data", 56) 

拡張子を追加しないでください。 Excelはファイルタイプパラメータに従って正しいものを追加します。

+0

保存するファイルの複雑さがわかりません。確認を避けるために、保存する前に 'ExcelObject.DisplayAlerts = False'を追加する必要があります。 – Jeeped

関連する問題