vba代码中有多个表单对象错误

我遇到了一个“运行时错误1004”的问题:应用程序定义的错误或对象定义的错误。如果if语句不能识别正在比较的对象之一,请帮助我理解我做错了什么。

Sub Enter_deposits() Sheets("Deposits").Activate Dim x As Integer Dim y As Integer For x = 4 To 21 For y = 10 To 500 If Sheets("deposits").Range(2, 4).Value = Sheets((Cells(x, 14).Value)).Range(y, 2).Value _ And Sheets((Cells(x, 14).Value)).Range(y - 1, 3) = 0 _ And Sheets("deposits").Range(x, 15).Value <> Sheets((Cells(x, 14).Value)).Range(y, 3) Then Sheets("deposits").Range(x, 15).Copy Sheets((Cells(x, 14).Value)).Range(y, 3).PasteSpecial xlPasteValues Else End If Next y Next x End Sub 

您需要了解VBA中的范围对象和单元对象是如何工作的。 例如,如果您想要参考“存款”表单中的单元格"D2"中的值,则可以使用以下任一方法执行此操作:

 Sheets("deposits").Range("D2").value 

要么

 Sheets("deposits").Cells(2,4).value 

看起来你正在混合使用这两个对象在你的代码中。