2017-03-02 26 views
0

我正在尝试将具有数字的行复制到另一个工作表。我已经从另一个论坛获得了SpecialCells代码,但有问题将数据粘贴到另一个表单中。感谢您的帮助!将特殊单元格复制到另一个工作表上的下一个空行

这里是我的代码:

Sub Sample() 

Dim ws As Worksheet 
Dim rng As Range 
Dim ws1 As Worksheet 

On Error GoTo Whoa 

Set ws = Sheets("3") 
Set ws1 = Sheets("Sheet1") 

With ws 
    Set rng = .Cells.SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow 

    Copy ws1.Range("A" & lastrow) 
End With 

Exit Sub 
End sub 
+0

哪里粘贴?你的'Whoa'错误处理程序在哪里? 'lastrow'在哪里定义/声明? – BruceWayne

+0

@BruceWayne他们不错过粘贴操作,他们错过了应该在'Copy'之前的'rng.' :)复制命令之后的参数是目的地,所以它应该是'rng.Copy ws1 .Range(“A”&lastrow)'。你的其他观点。 – Wolfie

回答

1

你可以试试这个:

Sub Sample() 
    With Sheets("Sheet1") 
     Sheets("3").UsedRange.SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow.Copy .Cells(.Rows.Count, 1).End(xlUp).Offset(1) 
    End With 
End sub 
+0

这个作品!非常感谢!! :) – Snflq

+0

不客气 – user3598756

+0

我试图使用相同的代码来复制非空单元格的数据行。我已经删除了“SpecialCells(xlCellTypeConstants,xlNumbers)”部分,但公式不再起作用。第二次运行宏时,新数据被复制到第二个数据填充行而不是下一个可用行。 – Snflq

0

我不;吨看到anywehre在你的代码,您定义和设置lastrow

修改你的最后一节:

With ws 
    Set Rng = .Cells.SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow 

    lastrow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row + 1 ' <-- get the last row in column A '<-- just in case you are looking for the first empty row in Column A 
    Rng.Copy ws1.Range("A" & lastrow) '<-- you need to add the Rng.Copy 
End With 
0

请尝试代码below.This将命名为“3”,而“sheet1”工作表复制数据。

Sub Sample() 

Dim ws As Worksheet 
Dim rng As Range 
Dim ws1 As Worksheet 

Set ws = Sheets("3") 
Set ws1 = Sheets("Sheet1") 
LastRow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row 

Set rng = ws.Cells.SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow 
rng.Copy 
ws1.Activate 
Range("A" & LastRow + 1).Select 
ActiveSheet.Paste 

End Sub 
+0

这个作品,谢谢:) – Snflq

相关问题