在比较两个不同工作表中的两个单元格时,我不断收到以下错误消息:
运行时错误'1004' 应用程序定义或对象定义的错误
For j = 2 To 10
For k = 1 To 26
If Not Worksheets("Sheet1").cells(j, k).Text = Worksheets("Sheet2").cells(j, k).Text Then
Worksheets("Sheet1").cells(j, k).Text = Worksheets("Sheet2").cells(j, k).Text
Worksheets("Sheet1").cells(j, k).Interior.Color = RGB(255, 255, 0)
End If
Next k
Next j
答案 0 :(得分:0)
尝试使用Value
或Value2
。有关差异,请参阅MSDN:
The only difference between this property and the Value property is that the Value2 property doesn't use the Currency and Date data types.
For j = 2 To 10
For k = 1 To 26
If Not Worksheets("Sheet1").Cells(j, k).Value = Worksheets("Sheet2").Cells(j, k).Value Then
Worksheets("Sheet1").Cells(j, k).Value = Worksheets("Sheet2").Cells(j, k).Value
Worksheets("Sheet1").Cells(j, k).Interior.Color = RGB(255, 255, 0)
End If
Next k
Next j
答案 1 :(得分:0)
这将纠正您的问题:
Sub test_me()
For j = 2 To 10
For k = 1 To 26
If Not Worksheets("Sheet1").Cells(j, k) = Worksheets("Sheet2").Cells(j, k) Then
Worksheets("Sheet1").Cells(j, k) = Worksheets("Sheet2").Cells(j, k)
Worksheets("Sheet1").Cells(j, k).Interior.Color = RGB(255, 255, 0)
End If
Next k
Next j
End Sub
如果不强制Excel使用特定数据类型,则可以进行比较。根据您要比较的确切内容,您可能会遇到键入差异。虽然我倾向于避免使用Not
运算符,但这通常是首选项,因此我在上面的代码中使用了它。此外,根据您调用此代码的方式,这可能是您的错误的原因。我把它放在一个单独的模块中,并且没有问题地运行它。