I want to compare 2 Excel-Sheets in VB.
I know how to open these sheets in QTP/UFT
I know how to get the ranges of all cells.
But I do not know a performant way to compare these 2 sheets (ranges).
If a Value in 2nd Sheet is different to the corresponding value in first sheet it shall be inserted in the corresponding cell of 2nd Sheet.
I can parse all cells in serial to compare with the corresponding cell, but this is not very performant.
I want to compare it in following way:
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
All Values could be in different rows and cells but there are corresponding ID in first Column and in the Header of columns.
So I have to parse for the correct row-ID in both sheets and the corresponding Column in both column headers.
I do not want to use a formula in the sheet, because I have to do the comparison in programmatical way.
Could someone please give me a hint if there is a function, method or property in Excel I could use?
Thanks in advance
Hope It May Help You.
It compares and if in second sheet any change from first sheet it will update the cell value and highlight it in yellow color.
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
if you want to see the excel on execution time then set
objExcel.Visible = True