如何比较两个不同excel工作表中的两个单元格范围?
我把我的vba代码放在这里,向大家展示我在这个问题上迄今为止的进展。这是一个在命令按钮点击时激活的宏 谢谢你的建议,不幸的是,我不知道这个标记的副本是否能解决我的问题。我会尽我所能把它弄清楚。在每个工作表中,在相同的范围内有两个相同的9*9宽度和高度的单元格块,每个单元格填充一个从1到9值的数字。两个工作表中的单元格值也相同。我希望我的代码能够比较每个单元格中两个范围的每个值,如果它们都匹配,则写入msgbox success,否则失败。我尝试在定义每个范围后编写.Value,但这也不起作用 我总是遇到运行时错误13:类型不匹配。我猜这类问题与我的值不是同一类型有关,但我在每个声明的范围内只有数字。我已经用谷歌搜索了这个问题,但由于我似乎无法找出这个问题的根源,我希望你能解答我的难题如何比较两个不同excel工作表中的两个单元格范围?,excel,vba,Excel,Vba,我把我的vba代码放在这里,向大家展示我在这个问题上迄今为止的进展。这是一个在命令按钮点击时激活的宏 谢谢你的建议,不幸的是,我不知道这个标记的副本是否能解决我的问题。我会尽我所能把它弄清楚。在每个工作表中,在相同的范围内有两个相同的9*9宽度和高度的单元格块,每个单元格填充一个从1到9值的数字。两个工作表中的单元格值也相同。我希望我的代码能够比较每个单元格中两个范围的每个值,如果它们都匹配,则写入msgbox success,否则失败。我尝试在定义每个范围后编写.Value,但这也不起作用 我
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
属性,则需要单独检查每个单元格。如果是其他问题,请澄清您的问题。可能是重复的谢谢!这个解决方案稍加修改就奏效了!我将根据这一点更新线程,如果其他人想知道如何做,我会将工作代码放入其中。