将特定单元格复制到另一张纸

时间:2018-02-24 07:42:38

标签: excel vba excel-vba

我在Excel中有2张工作簿(2017年和2018年)。

我想从2017年表中获取某些单元格,并在将特定值输入同一行中的特定单元格时将其复制到表2018。

例如:在2017年的工作表中,在单元格A2中,如果是" X"输入后,我希望将单元格B2,C2和G2复制到工作表2018.在工作表2018中,应将它们复制到下一个空行并从表单2017中删除。 等2017年的每一行都有" X"在A栏中。

有人能帮我解决这个VBA问题吗?

1 个答案:

答案 0 :(得分:0)

试试此代码



Private Sub Worksheet_Change(ByVal Target As Range)
    Dim e           As Variant
    Dim lr          As Long
    Dim r           As Long

    If Target.Count = 1 And Target.Column = 1 Then
        With Sheets("2018")
            lr = .Cells(Rows.Count, 2).End(xlUp).Row + 1
            r = Target.Row

            If Target = "X" Then
                Application.EnableEvents = False
                    For Each e In Array("B", "C", "G")
                        .Range(e & lr) = Range(e & r)
                        Range(e & r).ClearContents
                    Next e
                Application.EnableEvents = True
            End If
        End With
    End If
End Sub




如果您需要使用所有行的按钮来创建它,您可以使用此代码



Sub Test()
    Dim ws          As Worksheet
    Dim e           As Variant
    Dim lr          As Long
    Dim r           As Long

    Set ws = ThisWorkbook.Sheets("2017")
    
    With Sheets("2018")
        For r = 1 To ws.Cells(Rows.Count, 2).End(xlUp).Row
            If ws.Cells(r, 1) = "X" Then
                lr = .Cells(Rows.Count, 2).End(xlUp).Row + 1
                For Each e In Array("B", "C", "G")
                    .Range(e & lr) = ws.Range(e & r)
                    ws.Range(e & r).ClearContents
                Next e
            End If
        Next r
    End With
End Sub




或者如果你使用过滤方法

会更好
相关问题