如何在Excel中select列的顶部

我有一个电子表格,logging合唱团排练的音乐作品的date。 列A列出了作品和列C,D等date。 我在与工作和date相对应的单元格中放置一个数字1。 例如

ABCDE 1 05 Jan 12 Jan 19 Jan 2 Song 1 1 3 Song 2 1 1 1 4 Song 3 1 1 

我对一首歌曲排练的次数进行简单的总计,但是想自动将歌曲最后排练的date(即歌曲2“12月1日”)复制到B列中。 电子表格有许多date栏和200多首歌曲。

下面的macros适用于歌曲1和2,但不适用于歌曲3时从单元格E3返回数字1

键盘快捷键:Ctrl + a

 ActiveCell.Select Selection.End(xlToLeft).Select Selection.End(xlUp).Select Selection.Copy Range("L2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("L13").Select End Sub 

我如何修改它来处理每首歌曲? 我会很感激的build议。

这里有一个选项:

 Sub Test2() Dim RngFind As Range Dim x As Integer Dim y As Integer 'Set a range, either hard-code it in like I did or use a named range Set RngFind = Sheets(1).Range("C2:E4") 'iterate through each row and column and capy date in column of last cell with a value 'It takes the date from the top row and the same column. You can use "1" or "X" or something else 'in the range for tracking when the song was rehearsed For y = RngFind.Row To (RngFind.Row + RngFind.Rows.Count) For x = RngFind.Column To (RngFind.Column + RngFind.Columns.Count) If Sheets(1).Cells(y, x).Value <> "" Then Sheets(1).Cells(y, "B").Value = Sheets(1).Cells(1, x).Value Next x Next y End Sub 

看起来歌曲2是在1月19日最后一次排练,而不是1月12日。你也说你想把date放在B列,但这不是你的代码所做的。 无论如何,如果你想在B列的最后排练的数据,但在B2的这个公式

 =INDEX(C$1:E$1,1,MATCH(2,C2:E2,TRUE)) 

并填写无论你有多less歌曲。 另外,请调整您所用date的E参考。

当所有的数据都是1时,试着匹配2会给你列表中的最后一个'1'。 然后,您可以将该位置送入INDEX函数以从第1行获取该date。