将选定的行复制到另一个工作表

将选定的行复制到另一个工作表

例如,一个工作表中有 10 行。当用户单击一行时,该行应显示在另一个工作表上。这可能吗?有什么帮助可以做到吗?

编辑: 澄清一下:例如,一张表上显示的是学生一年级的考试成绩:约翰 10 8 10 7 尼克 8 9 8 9 玛丽亚 7 8 8 7

第二张表是二年级学生的信息:约翰 9 9 10 8 尼克 8 8 9 7 玛丽亚 7 6 8 8

我想为学生颁发某种最终证书,因此摘要信息应显示在第三张表上。我不需要点击。第三张表上可以有下拉列表。

答案1

这是一个快速的宏来做到这一点:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  With Sheet2.UsedRange
    'note, this won't copy to row 1, leaving headers intact.
    Target.EntireRow.Copy (.Rows(.Rows.Count + 1).EntireRow)
  End With
End Sub

但是,将其与选择更改一起使用可能会非常烦人,因为每次选择另一个单元格时它都会被执行 - 因此您可能需要考虑使用某种回溯检查或其他方式来执行此操作。

也许只是将代码用作自定义宏并分配一个快捷键。

编辑

当您只想使用公式执行此操作时,您必须使用公式设置目标行的每个单元格。我不知道有什么方法可以直接使用公式更改单元格,当然,带有公式的单元格除外。

我的建议是,使用八个命名范围、VLOOKUP 或 MATCH。

命名范围可能非常接近您所述的内容:

在目的地表上:

A1=14

A2=MYRANGE
B2=MYRANGE
.
.
.
IV2=MYRANGE

MYRANGE 定义为

=INDIRECT("SourceSheet!"&DestSheet!$A$1&":"&DestSheet!$A$1)

这样就会显示目标工作表的第 14 行。如果 A1 在 SourceSheet 上,这也会起作用,只需进行相应的编辑即可。

您可以轻松使用两个命名范围:

MYDESTRANGE=SourceSheet!MYSOURCERANGE

通过将 MYSOURCERANGE 更改为另一行,您可以有效地更改 MYDESTRANGE 的源,同时使用与之前相同的行。

相关内容