Ich versuche, zwei Excel-Arbeitsmappen zu vergleichen und die Unterschiede in dieser Arbeitsmappe aufzulisten.Vergleichen Sie zwei Excel-Arbeitsmappen: VBA-Arrays nicht gleich
Ich erhalte Fehler "Typ stimmt nicht überein" in der unteren Zeile:
If varSheetA <> varSheetB Then
Code:
Sub compareworkb()
Dim varSheetA As Variant
Dim varSheetB As Variant
Dim strRangeToCheck As String
Dim iRow As Long
Dim iCol As Long
Set wbkA = Workbooks.Open(Filename:="C:\Solution - Beginners template .xlsx")
Set wbkB = Workbooks.Open(Filename:="C:\Template_Project Lead - Beginners.xlsx")
For i = 1 To wbkA.Sheets.Count
Set varSheetA = wbkA.Worksheets(wbkA.Sheets(i).Name)
Set varSheetB = wbkB.Worksheets(wbkB.Sheets(i).Name)
strRangeToCheck = "A1:N100"
Debug.Print Now
varSheetA = varSheetA.Range(strRangeToCheck)
varSheetB = varSheetB.Range(strRangeToCheck)
Debug.Print Now
For iRow = LBound(varSheetA, 1) To UBound(varSheetA, 1)
For iCol = LBound(varSheetA, 2) To UBound(varSheetA, 2)
If varSheetA <> varSheetB Then
wbkB.Sheets(ShName).Cells(iRow, iCol).Interior.Color = vbYellow
ThisWorkbook.Sheets(1).Cells(7 + sh, 2) = "Mismatch Found"
ThisWorkbook.Sheets(1).Cells(7 + sh, 2).Interior.Color = vbYellow
End If
Next
Next
Next i
End Sub
Variablen 'varSheetA' und' varSheetA' enthalten 2-dimensionalen Arrays (für Bereiche von mehr als 1 Zelle), können Sie die ganze Arrays mit nicht vergleichen kann '<> 'Betreiber. Es ist notwendig, jedes Element des Arrays innerhalb von verschachtelten Schleifen zu überprüfen. – omegastripes
Vorschläge, wie man es ändert – Stacey