比较两个范围VBA

我试图比较以下VBA代码的Excel中的范围:

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 

但是我得到错误types不匹配。

任何人有什么问题的想法?

我从另一篇文章( 比较两个范围 )得到了这个代码,但是我不能发表评论,要求发布代码的人为什么可能会遇到这个问题。

这已经回答了: 最快的方法来检查两个范围在excel vba中是否相等

请注意,链接的问题也被标记为重复。 转到原来的post看到完整的答案。 如果应该帮助你,并回答一切。

这就是说,使用此工作表: https : //msdn.microsoft.com/en-us/library/office/ff838238.aspx查看范围对象可以在VBA中执行的一切。