如何比较 VBA 中不同工作表中的两个值?

How to compare two values in different worksheet in VBA?

我是 VBA 的新手。在这里,我想比较属于同一工作簿的不同工作表中的两个值。在 Sheet1 中,只有 A 列填充了几个数字(即 1、2、3、4、5),而在 Sheet2 中,三列填充了 enter code here 值。而在 Sheet2 中,A 列具有以下值(即 2、1、4、3、5)。在这里,我将 Sheet1 A 列的值与 Sheet2 中 A 列的值进行比较。 我收到

的连续错误

Runtime error "13"

Option Explicit

Sub chek()
Dim ws As Workbook
Set ws = ThisWorkbook
Dim sheet As Worksheet
Dim firstRng As Integer
firstRng = Sheet2.Range("A:A").Value
Dim secondrng As Integer
secondrng = Sheet1.Range("A:A").Value

Dim i As Integer
For i = 1 To 5

    For Each sheet In Worksheets
        If IsArray(secondrng) = IsArray(firstRng) Then
            Sheet2.Range("A1:C1").Value.Copy
            Sheet3.PasteSpecial

        End If

    Next sheet
Next i
End Sub

这段代码应该可以运行。正如已经提到的: 您不能将范围分配给整数。其次,VBA 对于数组来说不是很好,这就是为什么我喜欢将值 1 乘 1 进行比较。我没有得到的是,如果你想在列相等时复制,或者如果你想复制一切都平等。下面的代码执行第一个。

Sub check()
Dim ws As Workbook
Set ws = ThisWorkbook
Dim firstrng As Range
Dim secondrng As Range
Set firstrng = Sheets(1).Range("A:A")
Set secondrng = Sheets(2).Range("A:A")

Dim i As Integer
For i = 1 To 5
    If firstrng.Cells(i, 1).Value = secondrng.Cells(i, 1).Value Then
        Sheets(1).Range("A" & i & ":C" & i).Copy Destination:=Sheets(3).Range("A" & i & ":C" & i)
    End If
Next i

End Sub

Richa,你的代码完全错误,试试这个解决方案

Sub Columnscompare() 'ok
Dim Dn As Range
LR1 = Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row
LR2 = Sheets(2).Cells(Rows.Count, "A").End(xlUp).Row
LR = LR2
If LR1 > LR2 Then LR = LR1
For Each Dn In Sheets(1).Range("A1:A" & LR)
  If Not Dn = Sheets(2).Range("A1")(Dn.Row, Dn.Column) Then MsgBox "Not equals Ranges": Exit Sub
Next Dn
MsgBox "Both Ranges have the same data"
End Sub