Mithilfe der Post here konnte ich ein VBA-Makro erstellen, um Zellen zwischen Arbeitsblättern zu vergleichen, um meine Zwecke zu erfüllen. Bis jetzt habe ich es jedoch nicht mit einem Bereich getestet, der nicht bei A1 beginnt.Vergleichen von Zellen zwischen Arbeitsblättern, Bereich beginnt nicht auf A1
Bei einem Bereich wie B1: X50 tritt ein Problem auf, bei dem der LBound der Spaltendimension des Blattarrays 1 ist, während die Spalte am Anfang des angegebenen Bereichs 2 (B) ist. Hier ist ein Teil des Codes Ich arbeite mit:
'Define the range to be checked
strRangeToCheck = Summary_ws.Range("I2").Value
'Store the range to be checked on each sheet in an array
varSheetA = New_Data_ws.Range(strRangeToCheck)
varSheetB = Old_Data_ws.Range(strRangeToCheck)
'Clear current highlighted cells on data tabs
New_Data_ws.Cells.Interior.Color = xlNone
Old_Data_ws.Cells.Interior.Color = xlNone
'Initialize counter
Counter = 0
Counter_rng.Value = Counter
For iRow = LBound(varSheetA, 1) To UBound(varSheetA, 1)
For iCol = LBound(varSheetA, 2) To UBound(varSheetA, 2)
On Error GoTo Err_Handler
If IsError(New_Data_ws.Cells(iRow, iCol).Value) Or IsError(Old_Data_ws.Cells(iRow, iCol).Value) Then
Counter = Counter + 1
Error_Flag = True
Call Flag_Changes
ElseIf varSheetA(iRow, iCol) = varSheetB(iRow, iCol) And _
Len(varSheetA(iRow, iCol)) = Len(varSheetB(iRow, iCol)) Then
'Cells are identical and lengths match
'Do Nothing
Else 'Cells are different
Counter = Counter + 1 'increment counter
Error_Flag = False
Call Flag_Changes
End If
Next iCol
Next iRow
Ich bin in der Lage, die strRangeToCheck zu bewerten, um festzustellen, ob es in Spalte A beginnt oder nicht. Wäre es dann möglich, basierend auf dieser Bestimmung den LBound des Blattes manuell auf die Startspalte in strRangeToCheck zu setzen?
diese Linie würde ein Problem für Sie erstellen, da es nur eine Zelle 'ist strRangeToCheck = Summary_ws.Range („I2“). Value' Ihr Bereich eine Zelle immer oder es könnte als eine Zelle mehr sein? – Ibo
Diese Zelle enthält eine Zeichenfolge, die von dem Benutzer zur Verfügung gestellt, wie A1: Z100. Wenn sie einen ungültigen Bereich angeben, wird ein Fehler ausgelöst. – kschindl