复制/粘贴同一活动工作表中的单元格时的运行时错误1004

时间:2013-02-07 11:26:29

标签: excel vba runtime

写下面的代码来检查两个单元格是否相同。第20列中的单元格是一个vlookup,它返回来自另一个工作表的注释。我想检查第16列中的单元格是否已经有这些注释,如果没有,我希望宏将20中的单元格中的值粘贴到16中的单元格。我基本上是这样做因为我想要注释在16中只是纯文本,但它需要动态(通过另一个宏)更新,因为注释与它们位于工作表旁边的数据透视表相关。

编辑:我正在使用Excel 2007,以防它相关。

在下面的代码中,当宏尝试复制第20列中的单元格时,会出现问题。 这段代码具体为:

ActiveSheet.Range(Cells(rowstest, 20)).Copy

以下是完整代码:

Sub MgrCmntsTest()
    Application.ScreenUpdating = False
    Dim rowstest As Integer
    rowstest = 1
    Dim comments As String
    Dim commentsForm As String
    With ActiveSheet.Range("a1:u500")
        Do
        comments = Cells(rowstest, 20).Value
        commentsForm = Cells(rowstest, 16).Value
        If comments = commentsForm Then
            rowstest = rowstest + 1
        Else
            ActiveSheet.Range(Cells(rowstest, 20)).Copy
            ActiveSheet.Range(Cells(rowstest, 16)).Select
            ActiveSheet.PasteSpecial Type:=xlPasteValues
            rowstest = rowstest + 1
        End If
        Loop While rowstest < 501
    End With
    Application.ScreenUpdating = True
End Sub

1 个答案:

答案 0 :(得分:2)

实际上你可以将代码减少到

Range("p1:P500").Value = Range("T1:T500").Value

(因为如果值不同,则需要复制这些值,如果它们相同,则仍然可以复制这些值)