2013-08-29 66 views
2

我想复制粘贴一行值从一个表到另一个,但不断出现运行时错误1004:应用程序定义或对象定义的错误。 错误是在下面两个的第一行,我不知道我要去哪里错了。复制粘贴范围在VBA Excel

Set copyRange = Worksheets("Sheet2").range(A & i + 1 & CA & i + 1) 
copyRange.Copy Destination:=Cells(countD, 2) 

代码需要一次复制一行并粘贴到默认表单中。

编辑 全码

Dim List1 As range 
Dim List2 As range 
Dim lastRow As Integer 
Dim countD As Integer 
Dim found As Boolean 
Dim copyRange As range 

Set List1 = ThisWorkbook.Sheets("Sheet1").range("H2:H600") 
Set List2 = ThisWorkbook.Sheets("Sheet2").range("I2:I600") 
countD = 2 
lastRow = Application.CountA(ThisWorkbook.Sheets("Sheet2").range("C:C")) 

For i = lastRow To 2 Step -1 
    found = False 
    value1 = List1.Item(i, 1) 
    For Each value2 In List2 
     If value1 = value2 Then 
      found = True 

      Exit For 
     End If 
    Next 

    If found = False Then 
     Set copyRange = Sheets("Sheet1").range("A" & i + 1 & "CA" & i + 1) 
     copyRange.Copy Destination:=Cells(countD, 2) 
     Sheets("Discrepancies").Cells(countD, 1) = "name not found" 
     ThisWorkbook.Sheets("Sheet1").Cells(i + 1, 1).EntireRow.Delete 
     Cells(countD, 8).Interior.ColorIndex = 3 

     countD = countD + 1 

    End If 

Next 
+0

尝试范围( “A” 的前面加一个冒号:的&I + 1&“CA”&i + 1) – Vasim

+0

nope,不起作用,同样的错误代码 – Intern87

+0

我会建议提供您的完整代码...以确定实际的错误.... – Vasim

回答

6

正是因为Vasim的评论中提到 - 与CA

Sub copyRangeOver() 

Dim i As Integer 
i = 6 

Dim copyRange As Range 
Set copyRange = ThisWorkbook.Worksheets("Sheet2").Range("A" & i + 1 & ":CA" & i + 1) 

Dim countD As Integer 
countD = 10 
copyRange.Copy Destination:=Cells(countD, 2) 


End Sub 
+0

啊......我应该有点小心.... :) – Vasim

+2

(@Vasim对不起,应对和粘贴你的评论!...让我看看我是否可以弥补你......);现在你已经跳到了300分!!! – whytheq

+0

谢谢Whytheq ... – Vasim