复制多个范围并粘贴到下一个空行的其他工作表上?

时间:2016-04-18 10:37:20

标签: excel vba excel-vba

我试图在用户点击单元格时复制多个范围。然后,我想将这些值粘贴到下一个可用行的另一个工作表上。

这是我迄今为止所尝试的内容:

    Q_id c1  c2 c3 c4 answer stu_id selected_answer  final_ans score
     2   1   2  3   4   2    82       3                false     0
     3   1   2  3   4   2    58       3                false     0
     3   1   2  3   4   2    83       2                true      0
     3   1   2  3   4   2    100      3
     4   1   2  3   4   1    79       3
     5   1   2  3   4   1    100      3
     7   1   2  3   4   1    54       3
     7   1   2  3   4   1    92       3
     8   1   2  3   4   3    56       2

但是我得到了一个未定义的应用程序错误。

2 个答案:

答案 0 :(得分:1)

当有人想要触发一个事件而不仅仅是细胞选择的改变而是尝试这个时,我总是有点小事。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("AB12:AD13")) Is Nothing Then
        Worksheets("Data").Cells(Rows.Count, "B").End(xlUp).Offset(1, 0).Resize(1, 2) = _
            Array(Range("B1").Value, Range("E11").Value)
    End If
End Sub

您可能还希望将Worksheet.BeforeDoubleClick事件作为触发值传输的替代方式。

答案 1 :(得分:1)

试试这个

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    lastrow = Worksheets("data").Range("B" & Rows.Count).End(xlUp).Row + 1
    If Not Intersect(Target, Range("AB12:AD13")) Is Nothing Then
        Range("B1").Copy Sheets("Data").Range("B" & lastrow)
        Range("E11").Copy Sheets("Data").Range("C" & lastrow)
    End If
End Sub