2009-07-07 8 views

答えて

3

1)QTPのネイティブDataTableオブジェクトのデータ行を比較しますか? sCellValue:インデックスで列名とセル値 sColName = objDataSheet.GetParameter(J).NAME 値にアクセスobjDataSheet.SetCurrentRow(intRow)

  • 使用のgetParameter:

    • 使用SetCurrentRow方法 例= objDataSheet.GetParameter COL名で(J).nameの 値:sCellValue = objDataSheet.GetParameter(sColName).nameの

    2)ドゥY 2つの異なるExcelワークシートで2行を比較したいですか? 次のコードを使用することができます(私のブログhttp://automationbeyond.wordpress.comから入手しました。他の例も参照してください)

    ExcelアプリケーションがPCにインストールされている必要があります。 比較は占有範囲内でセルごとに行われます。 不一致のセルには赤色のマークが付きます。

    両方のブックが存在し、ファイルの完全パスとして定義されている必要があります。 両方のワークシートが存在しなければならず、数字のインデックスまたは文字列名として定義することができます。

    objParameterは、「大文字小文字を無視」「数字を切り上げ」のようなカスタム比較を実装するために予約されたパラメータなど

    Public Function ExcelWorksheetCompare(ByVal sWorkbook1, ByVal sWorksheet1, ByVal sWorkbook2, ByVal sWorksheet2, ByVal objParameter) 
    Dim boolRC, boolSheetExists 
    Dim FSO, XLHandle 
    Dim XLBook1, XLBook2, XLSheet1, XLSheet2 
    Dim Iter, objCell 
    
    ‘Verify both files exist 
    Set FSO = CreateObject(”Scripting.FileSystemObject”) 
    boolRC = FSO.FileExists(sWorkbook1) 
    If Not boolRC Then 
    ExcelWorksheetCompare = FALSE 
    Exit Function 
    End If 
    boolRC = FSO.FileExists(sWorkbook2) 
    If Not boolRC Then 
    ExcelWorksheetCompare = FALSE 
    Exit Function 
    End If 
    Set FSO = Nothing 
    
    Set XLHandle = CreateObject(”Excel.Application”) 
    XLHandle.DisplayAlerts = False 
    
    ‘Open workbook1 
    Set XLBook1 = XLHandle.WorkBooks.Open(sWorkbook1) 
    
    ‘Verify sheet exists (1) 
    If isNumeric(sWorksheet1) Then 
    sWorksheet1 = CInt(sWorksheet1) 
    If (sWorksheet1 >0) AND (sWorksheet1<=XLBook1.Worksheets.Count) Then 
    Set XLSheet1 = XLBook1.Worksheets(sWorksheet1) 
    boolSheetExists = TRUE 
    Else 
    boolSheetExists = FALSE 
    End If 
    Else 
    boolSheetExists = FALSE 
    For Iter = 1To XLBook1.Worksheets.Count 
    If XLBook1.Worksheets(Iter).Name = sWorksheet1 Then 
    Set XLSheet1 = XLBook1.Worksheets(Iter) 
    boolSheetExists = TRUE 
    End If 
    Next 
    End If 
    
    If Not boolSheetExists Then 
    XLBook1.Close 
    XLHandle.Quit 
    Set XLBook1 = Nothing 
    Set XLHandle = Nothing 
    
    ExcelWorksheetCompare = FALSE 
    Exit Function 
    End If 
    
    ‘Open workbook2 
    Set XLBook2 = XLHandle.WorkBooks.Open(sWorkbook2) 
    
    ‘Verify sheet exists (2) 
    If isNumeric(sWorksheet2) Then 
    sWorksheet2 = CInt(sWorksheet2) 
    If (sWorksheet2 >0) AND (sWorksheet2<=XLBook2.Worksheets.Count) Then 
    Set XLSheet2 = XLBook2.Worksheets(sWorksheet2) 
    boolSheetExists = TRUE 
    Else 
    boolSheetExists = FALSE 
    End If 
    Else 
    boolSheetExists = FALSE 
    For Iter = 1To XLBook2.Worksheets.Count 
    If XLBook2.Worksheets(Iter).Name = sWorksheet2 Then 
    Set XLSheet2 = XLBook2.Worksheets(Iter) 
    boolSheetExists = TRUE 
    End If 
    Next 
    End If 
    
    If Not boolSheetExists Then 
    XLBook1.Close 
    XLBook2.Close 
    XLHandle.Quit 
    Set XLSheet1 = Nothing 
    Set XLBook1 = Nothing 
    Set XLBook2 = Nothing 
    Set XLHandle = Nothing 
    
    ExcelWorksheetCompare = FALSE 
    Exit Function 
    End If 
    
    ‘Mark range 
    
    ‘Compare and mark mismatches red 
    For Each objCell In XLSheet2.UsedRange 
    If objCell.Value <> XLSheet1.Range(objCell.Address).Value Then 
    objCell.Interior.ColorIndex = 3 
    Else 
    objCell.Interior.ColorIndex = 0 
    End If 
    Next 
    
    ‘Save and close 
    
    XLBook1.Close 
    
    XLBook2.Save 
    XLBook2.Close 
    
    XLHandle.Quit 
    
    Set XLSheet1 = Nothing 
    Set XLSheet2 = Nothing 
    Set XLBook1 = Nothing 
    Set XLBook2 = Nothing 
    Set XLHandle = Nothing 
    
    ExcelWorksheetCompare = TRUE 
    
    End Function 
    
    です