2017-06-15 3 views
0

ich mit dem folgenden VBA-Code Bereiche in Excel zu vergleichen versuchen:Vergleichen Sie zwei Bereiche VBA

Sub CompareTwoRanges() 
Dim wb As Workbook 
Dim ws1 As Worksheet 
Dim ws2 As Worksheet 
Dim rng1 As Range 
Dim rng2 As Range 

Set wb = ThisWorkbook 
Set ws1 = wb.Sheets("Sheet1") 
Set ws2 = wb.Sheets("Sheet2") 
Set rng1 = ws1.Range("A14:C14") 
Set rng2 = ws2.Range("N3:P3") 

If rangesAreEqual(rng1, rng2, ws1, ws2) Then 
MsgBox "The ranges are equal." 
Else 
MsgBox "Sorry. The ranges are NOT equal." 
End If 
End Sub 

Function rangesAreEqual(rng1 As Range, rng2 As Range, _ 
ws1 As Worksheet, ws2 As Worksheet) As Boolean 
' booleans default to false 
' verify ranges have same dimensions 
If rng1.Columns.Count <> rng2.Columns.Count Then Exit Function 
If rng1.Rows.Count <> rng2.Rows.Count Then Exit Function 

' ranges are the same size. are their contents equal? 
rangesAreEqual = ws1.Evaluate("=AND(EXACT(" & ws1.Name & "!" & _ 
rng1.Address & "," & ws2.Name & "!" & rng2.Address & "))") 
End Function 

Allerdings bin ich den Fehler Type Mismatch bekommen.

Jeder hat Ideen, was das Problem ist?

Ich habe diesen Code von einem anderen Beitrag (Compare Two Ranges) aber ich kann nicht kommentieren, um die Person zu fragen, die den Code veröffentlicht, warum ich dieses Problem bekommen könnte.

+0

Auf welcher Zeile erhalten Sie den Fehler? –

+0

Dies wurde beantwortet: https://stackoverflow.com/questions/22270693/fastest-way-to-check-if-two-range-are-equal-in-excel-vba – Jsleshem

+0

Ich bekomme den Fehler in Zeile 10 – bmartin598

Antwort

1

Dies wurde beantwortet: Fastest way to check if two ranges are equal in excel vba

Beachten Sie, dass die Frage auch als Duplikat markiert verknüpft ist. Gehe zum ursprünglichen Beitrag, um die vollständige Antwort zu sehen. Wenn es dir helfen sollte, und alles beantworten.

Verwenden Sie dieses Blatt: https://msdn.microsoft.com/en-us/library/office/ff838238.aspx, um alles zu sehen, was das Bereichsobjekt in VBA tun kann.

+0

Keine dieser Methoden wird das Type Mismatch-Problem beheben, obwohl das Original prägnanter ist. Das Problem mit der Typabweichung besteht darin, dass das OP höchstwahrscheinlich einen Fehler in einer oder mehreren Zellen hat. Und wir können Fehler nicht gleichsetzen. –