2017-08-17 103 views
2

我有一個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 

雖然,有一次我打開這個電子表格Excel中,我得到以下錯誤: 文件格式和「Data.xls」的擴展名不匹配。該文件可能是correctedted或不安全 ...

此外,我不能從UFT惠普進口此數據表。我相信這可能是由於如何生成Excel文件的這個問題。

我能做些什麼來解決它?

+1

將其另存爲xlsx。 – Jeeped

+0

我特別需要它是xls,因爲QTP(現在HP-UFT)要求它是xls – JoaoFilipeClementeMartins

+1

,然後使用saveas命令的filetype參數。提示:不要包含.xls擴展名。如果你的代碼正確,Excel將把正確的那個放在那裏。 – Jeeped

回答

2

您需要另存爲FileFormatxlExcel8。 xlExcel8相當於56(因爲VB-Script沒有xlExcel8引用)。

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

請勿添加擴展名。 Excel將根據文件類型參數添加正確的一個。

+0

我不確定要保存的文件有多複雜。您可能需要在保存前添加'ExcelObject.DisplayAlerts = False'以避免確認。 – Jeeped