VBA通过单元格将单元格从一个表单添加到另一个表单

我想创buildbutton,添加一个单元格从一个单元到另一个时间被添加。 在图像中,我展示了我想要做的事情。 添加第一个单元格

到目前为止我得到了这个

Sub CopyBasedonSheet1() Dim i As Integer Dim j As Integer Sheet1LastRow = Worksheets("Sheet1").Range("B" & Rows.Count).End(xlUp).Row i = 1 For j = 1 To Sheet1LastRow If Worksheets("Sheet1").Cells(j, 2).Value = "a" Then Worksheets("Sheet2").Cells(i, 1).Value = Worksheets("Sheet1").Cells(j, 1).Value Worksheets("Sheet2").Cells(i, 2).Value = Worksheets("Sheet1").Cells(j, 2).Value i = i + 1 End If Next j End Sub 

但是当我添加下一个单元格,再次按下button,它将覆盖表2中的整个单元格。我想这样做: 添加下一个单元格你能帮助我吗?

A:A到Sheet2!A:A和Sheet1!B:B到Sheet2!B:B其中Sheet1!B:B是“a”,但是你的图像放在Sheet1!A:A到Sheet2! A:A在哪里Sheet1!B:B是“a”而忽视Sheet1!B:B。 我会select后者。

 Option Explicit Sub CopyBasedonSheet1() Dim j As Long, Sheet1LastRow As Long, Sheet2NextRow As Long Sheet1LastRow = Worksheets("Sheet1").Range("B" & Rows.Count).End(xlUp).Row Sheet2NextRow = Worksheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row + _ IsEmpty(Worksheets("Sheet2").Range("A1")) With Worksheets("Sheet1") For j = 1 To Sheet1LastRow If .Cells(j, "B").Value = "a" And _ IsError(Application.Match(.Cells(j, "A").Value, Worksheets("Sheet2").Columns("A"), 0)) Then Worksheets("Sheet2").Cells(Sheet2NextRow, "A").Value = .Cells(j, "A").Value Sheet2NextRow = Sheet2NextRow + 1 End If Next j End With End Sub