如何比较两个不同excel工作表中的两个单元格范围?

如何比较两个不同excel工作表中的两个单元格范围?,excel,vba,Excel,Vba,我把我的vba代码放在这里,向大家展示我在这个问题上迄今为止的进展。这是一个在命令按钮点击时激活的宏 谢谢你的建议,不幸的是,我不知道这个标记的副本是否能解决我的问题。我会尽我所能把它弄清楚。在每个工作表中,在相同的范围内有两个相同的9*9宽度和高度的单元格块,每个单元格填充一个从1到9值的数字。两个工作表中的单元格值也相同。我希望我的代码能够比较每个单元格中两个范围的每个值,如果它们都匹配,则写入msgbox success,否则失败。我尝试在定义每个范围后编写.Value,但这也不起作用 我

我把我的vba代码放在这里,向大家展示我在这个问题上迄今为止的进展。这是一个在命令按钮点击时激活的宏

谢谢你的建议,不幸的是,我不知道这个标记的副本是否能解决我的问题。我会尽我所能把它弄清楚。在每个工作表中,在相同的范围内有两个相同的9*9宽度和高度的单元格块,每个单元格填充一个从1到9值的数字。两个工作表中的单元格值也相同。我希望我的代码能够比较每个单元格中两个范围的每个值,如果它们都匹配,则写入msgbox success,否则失败。我尝试在定义每个范围后编写.Value,但这也不起作用

我总是遇到运行时错误13:类型不匹配。我猜这类问题与我的值不是同一类型有关,但我在每个声明的范围内只有数字。我已经用谷歌搜索了这个问题,但由于我似乎无法找出这个问题的根源,我希望你能解答我的难题

Sub Check()    
    If Sheets("Sudoku").Range("B2:J10") = Sheets("Solution").Range("B2:J10") Then    
        MsgBox "Success!"
    Else    
        MsgBox "Fail!"    
    End If    
End Sub
任何回答都将不胜感激! 谢谢大家的回答,我们终于想出了解决办法!如果有人对它感兴趣,我会把它放在下面。这是对Odatas版本的稍微修改

Sub Check()
Dim i As Integer
Dim j As Integer

For i = 2 To Sheets("Sudoku").Cells(Sheets("Sudoku").Rows.Count, "B").End(xlUp).Row
    For j = 2 To Sheets("Sudoku").Cells(2, Sheets("Sudoku").Columns.Count).End(xlToLeft).Column
        If Sheets("Sudoku").Cells(j, i).Value = Sheets("Megoldás").Cells(j, i).Value Then
        Else
            MsgBox ("Fail!")
            Exit Sub
        End If
    Next
Next
MsgBox ("Success!")

End Sub

您需要遍历所有值

    Sub Check()
    Dim i As Integer
    Dim j As Integer


    For i = 1 To Sheets("Sudoku").Cells(.Rows.Count, "A").End(xlUp).Row
        for j= 1 to Sheets("Sudoku")..Cells(1, .Columns.Count).End(xlToLeft).Column
            If Sheets("Sudoku").Cells(j, i).value = Sheets("Solution").Cells(j, i).value Then

            Else If
                MsgBox("Fail")
                Exit Sub
            End If

        Next
    Next

    MsgBox("Success")
  End Sub

您试图比较范围的哪些属性?您的代码出现了什么问题?如果是
.Value
属性,则需要单独检查每个单元格。如果是其他问题,请澄清您的问题。可能是重复的谢谢!这个解决方案稍加修改就奏效了!我将根据这一点更新线程,如果其他人想知道如何做,我会将工作代码放入其中。