创建在VBScript Excel文件生成一个已损坏的文件

创建在VBScript Excel文件生成一个已损坏的文件

问题描述:

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

您需要另存为FileFormatxlExcel8。 xlExcel8相当于56(因为VB-Script没有xlExcel8引用)。

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

请勿添加扩展名。 Excel将根据文件类型参数添加正确的一个。

+0

我不确定要保存的文件有多复杂。您可能需要在保存前添加'ExcelObject.DisplayAlerts = False'以避免确认。 – Jeeped