比较两个范围VBA [英] Compare two Ranges VBA

查看:59
本文介绍了比较两个范围VBA的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用以下VBA代码与excel中的范围进行比较:

I am trying to compare to ranges in excel with the following VBA code:

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

但是我遇到错误类型不匹配.

However I am getting the error Type Mismatch.

有人对问题出在哪里有想法吗?

Anyone have ideas on what the problem is?

我从另一篇文章中获得了此代码(

I got this code from another post (Compare Two Ranges) however I can not comment to ask the person who posted the code why I might be getting this problem.

推荐答案

已得到答案:请注意,链接的问题也被标记为重复.转到该原始帖子以查看完整答案.如果应该帮助您,并回答所有问题.

Note, that the question linked is also marked as a duplicate. Go to that original post to see the full answer. If should help you, and answer everything.

话虽如此,请使用此工作表: https://msdn.microsoft.com/en-us/library/office/ff838238.aspx 来查看范围对象可以在VBA中执行的所有操作.

That being said, use this sheet: https://msdn.microsoft.com/en-us/library/office/ff838238.aspx to see everything that the range object can do in VBA.

这篇关于比较两个范围VBA的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆