2 Range-Objekte vergleichen

30/06/2010 - 10:41 von Stefan Dase | Report spam
Hallo allerseits,

welche Möglichkeiten habe ich, zwei Range-Objekte zu vergleichen? Dabei
kommt es mir nicht auf den Vergleich Zelle für Zelle an, sondern ich
benötige nur eine pauschale Aussage, ob die beiden Bereiche gleich sind.
Gibt es hierfür eine Art ToString- oder Hash-Funktion?

Hintergrund: Ich muss zwei Excel-Mappen vergleichen und wollte im ersten
Schritt feststellen, ob die Überschriftenblöcke (z.Zt. 7 Zeilen mit 24
Spalten) sich nicht geàndert haben.

Vielen Dank für alle Hinweise,
Stefan
 

Lesen sie die antworten

#1 Andreas Killer
30/06/2010 - 12:12 | Warnen spam
On 30 Jun., 10:41, Stefan Dase wrote:

welche Möglichkeiten habe ich, zwei Range-Objekte zu vergleichen? Dabei
kommt es mir nicht auf den Vergleich Zelle für Zelle an, sondern ich
benötige nur eine pauschale Aussage, ob die beiden Bereiche gleich sind.


Es gibt nur den direkten Vergleich, also Zelle für Zelle.

Gibt es hierfür eine Art ToString- oder Hash-Funktion?


Nein.

Hintergrund: Ich muss zwei Excel-Mappen vergleichen und wollte im ersten
Schritt feststellen, ob die Überschriftenblöcke (z.Zt. 7 Zeilen mit 24
Spalten) sich nicht geàndert haben.


Dann brauchst Du ja nur die Inhalte vergleichen?

Andreas.

Sub Test()
Const Zeilen = 7
Const Spalten = 24
Dim R1 As Range, R2 As Range
Dim X As Long, Y As Long
Dim Gleich As Boolean

'Ersten Bereich definieren
With Workbooks("Mappe1.xls").Sheets(1)
Set R1 = .Range(.Cells(1, 1), .Cells(Spalten, Zeilen))
End With

'Zweiten Bereich gleich groß definieren
With Workbooks("Mappe2.xls").Sheets(1)
Set R2 = .Range(.Cells(1, 1), .Cells(Spalten, Zeilen))
End With

'Bereiche vergleichen
Gleich = True
For Y = 1 To R1.Rows.Count
For X = 1 To R1.Columns.Count
If R1(Y, X) <> R2(Y, X) Then
'Nicht gleich
Gleich = False
End If
Next
Next
MsgBox "Gleich? " & Gleich
End Sub

Ähnliche fragen