2014-08-28 84 views
2

首先,我的英语和计算机技能很差。 我正在参加一些学校团队的出勤工作(> 50)。 每个团队都有自己的表格供参加。 每个队有不同的训练日期和数量。 我试图把来自不同工作表的所有数据合并到一起,并且我做到了。 但问题是我想检查前一天训练过的球队的出勤率。由于培训日期和人数不同,不同团队的出勤记录出现在不同的栏目中。我只是试图要求所有的团队在特定的地方插入一个新的专栏来出席。但我希望我可以使用“Lastcolumn”或其他方法来解决这个愚蠢的问题。复制不同工作表的最后一栏,然后合并成一张工作表

我愚蠢的解决方案: 1,将所有片
2,清除所有数据,除了最新的一个 3,过滤器“ABS” 4,选择whcih人类

Sheets(Sheets.Count).Select 
    Range("A1").Select 

    For i = 1 To Sheets.Count - 2 
     Sheets(i).Select 
     Range("A1").Select 
     Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select 
     Application.CutCopyMode = False 
     Selection.Copy 
     Sheets(Sheets.Count - 1).Select 
     lastrow = Cells(1, 1).End(xlDown).Row 
     Range("A" & (lastrow + 1)).Select 
     ActiveSheet.Paste 
    Next i 
' 
' 
    Columns("F:BB").Select 
    Selection.ClearContents 
    Range("A4:E4").Select 
    Selection.AutoFilter 
    ActiveSheet.Range("$A$4:$E$37").AutoFilter Field:=5, Criteria1:="ABS" 

End Sub 
有昨天的训练队伍

回答

0

如果您可以粘贴出席表格所在的格式,这将有助于我们回答您的问题。然而,似乎这个解决方案可能有效。

Selection.End(xlToRight).Select 
Range(Selection, Selection.End(xlDown)).Select 

假设A行的所有单元格有一个值,你要复制的替换列在你的代码行

Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select 
Application.CutCopyMode = False 

+0

太棒了! Thx迈克。但我也想把前几列(成员名称和成绩等)复制到汇总表中,这就是为什么有“Range(”A4:E4“)。在我的脚本中选择 Selection.AutoFilter”。是否可以一次复制前几列和最后一列? – 2014-08-29 08:44:53

+0

看到我的其他回答哪个地址您的评论! @Rdi Lau – 2014-09-09 17:46:46

0

确定您可以使用Range对象同时选择两个范围。

插入代码顶部;

Dim rng1, rng2, rngCombo As Range 

然后修改如此;

Selection.End(xlToRight).Select 
Range(Selection, Selection.End(xlDown)).Select 
Set rng1 = Selection 
Set rng2 = Range("A4:E4") 
Set rngCombo = Union(rng1, rng2) 
rngCombo.Select 

希望这有助于! 如果它做了一个投票将不胜感激!

相关问题