我在Excel中有2张工作簿(2017年和2018年)。
我想从2017年表中获取某些单元格,并在将特定值输入同一行中的特定单元格时将其复制到表2018。
例如:在2017年的工作表中,在单元格A2中,如果是" X"输入后,我希望将单元格B2,C2和G2复制到工作表2018.在工作表2018中,应将它们复制到下一个空行并从表单2017中删除。 等2017年的每一行都有" X"在A栏中。
有人能帮我解决这个VBA问题吗?
答案 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

或者如果你使用过滤方法
会更好