QTP / UFT:使用VB比较两个Excel表格的简单性和高性能

我想在VB中比较2个Excel表格。 我知道如何在QTP / UFT中打开这些表单我知道如何获取所有单元格的范围。 但我不知道比较这两张(范围)的高效方法。

如果第二张的值与第一张的相应值不同,则应插入第二张的相应单元格中。 我可以parsing所有的单元格串行比较与相应的单元格,但这不是很高性能。

我想用下面的方法比较一下:

If not (sheet1.range() equals sheet2.range()) then if not (Sheet1.range.Row equals sheet2.range.row) then if not (Sheet1.range.Row.cells equals Sheet2.range.Row.cells) then Sheet2.range.Row.cells.value = Sheet1.range.Row.cells.value 

所有的值可以在不同的行和单元格中,但是在第一列和列的标题中有相应的ID。 所以我必须parsing这两个工作表中的正确的行ID和两个列标题中的对应的列。 我不想在表格中使用公式,因为我必须以程序化的方式进行比较。

有人可以给我一个提示,如果有一个函数,方法或属性在Excel中可以使用? 提前致谢

希望它可以帮助你。 它比较,如果在第二张表中的任何变化,从第一张将更新单元格的值,并突出显示为黄色。

 Set objMyExcel = CreateObject(“Excel.Application”) objExcel.Visible = False Set objMyDataExcel1= objMyExcel.Workbooks.Open(“C:\Data1.xls”) Set objMyDataExcel2= objMyExcel.Workbooks.Open(“C:\Data2.xls”) Set objMyWorksheet1= objMyDataExcel1.Worksheets(1) Set objMyWorksheet2= objMyDataExcel2.Worksheets(1) For Each cell In objMyWorksheet1.UsedRange If cell.Value <> objMyWorksheet2.Range(cell.Address).Value Then objMyWorksheet2.Range(cell.Address).Value = cell.Value cell.Interior.ColorIndex = 6 Else cell.Interior.ColorIndex = 0 End If Next Set objMyExcel = Nothing 

如果你想看看执行时间的Excel然后设置

 objExcel.Visible = True