[英]VBA Adding cells from one sheet to another by cell
我想创建一个按钮,按时添加一个单元格到另一个单元格。 在图像中我展示了我想做的例子。 添加第一个细胞
到目前为止我得到了这个
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
但是,当我添加下一个单元格并再次按下按钮时,它将覆盖表单2中的整个单元格。我想这样做: 添加下一个单元格你能帮助我吗?
你的代码说Sheet1!A:A到Sheet2!A:A和Sheet1!B:B到Sheet2!B:B里Sheet1!B:B是“a”但是你的图像说把Sheet1!A:A放到Sheet2中! A:Sheet1!B:B是“a”而忽略Sheet1!B:B。 我会选择后者。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.