例如,一个工作表中有 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 的源,同时使用与之前相同的行。