将数据从一个工作表复制到另一个工作表中的下一个可用行

时间:2017-04-24 18:55:03

标签: excel-vba vba excel

我之前从未使用过宏,但是有人可以告诉我在下面的宏中遗漏了什么,所以来自表1的数据会被复制到表2中的下一个可用行吗?我已经尝试过" LastRow"," NextRow"命令,但我无法做到。任何帮助都会很棒。

Sheets("Sheet1").Range("B2").Select
Selection.Copy
iRow = Worksheets("Sheet2").Cells(Rows.Count, 1).End(x1up).Row + 1
Sheets("Sheet2").Range ("B" & iRow)
ActiveSheet.Paste

2 个答案:

答案 0 :(得分:1)

尝试其中任何一个。它是xlup而不是x1up,并且您没有粘贴到目标单元格(并且Selects是不必要的)。

iRow = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlup).Row + 1
Sheets("Sheet1").Range("B2").Copy Sheets("Sheet2").Range ("B" & iRow)

iRow = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlup).Row + 1
Sheets("Sheet2").Range ("B" & iRow).value=Sheets("Sheet1").Range("B2").value

答案 1 :(得分:0)

关于这一点,我有以下代码。但是,我的问题是我有这个宏的多个版本运行并将信息拉到同一张表。我需要能够让宏找到下一行而不是覆盖页面上已有的内容。

Sub Product_Value_In_Specific_Row()     Dim c As Range     Dim J As Integer     昏暗的来源作为工作表     昏暗的目标作为工作表

' Change worksheet designations as needed
Set Source = ActiveWorkbook.Worksheets("mongodb")
Set Target = ActiveWorkbook.Worksheets("Inputs")

J = 2     ' Start copying to row 1 in target sheet
For Each c In Source.Range("A2:A100")   ' Do 1000 rows
    If c = "Product" then
       Source.Rows(c.Row).Copy Target.Rows(J)
       J = J + 1
    End If
Next c

End Sub

我通过将“J = 2”行更改为几行来解决这个问题,但我的其他工作表有不同的行数,并希望他们只需复制并粘贴到输入表中而不会覆盖每一行其他。