复制不同工作表的最后一列,然后合并为一个工作表

时间:2014-08-28 19:07:47

标签: excel vba excel-vba

首先,抱歉我的英语和计算机技能很差。 我正在努力学习一些学校团队(> 50)。 每个团队都有自己的表格来参加。 每个团队都有不同的培训日期和编号。 我试图将来自不同表格的所有数据合并为一个,然后我就完成了。 但问题是我想检查前一天训练过的球队的出勤情况。由于培训日期和数量不同,不同团队的出勤记录显示在不同的栏目中。我只是想让所有团队在一个特定的地方插入一个新专栏,以便参加。但我希望我可以使用" Lastcolumn"或其他方法来解决这个愚蠢的问题。

我的愚蠢解决方案: 1,组合所有板材
2,清除除最新更新之外的所有数据 3,过滤" ABS" 4,选择昨天由人类培训的团队

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

2 个答案:

答案 0 :(得分:0)

如果您可以粘贴考勤表所在的格式,这将有助于我们回答您的问题。但是,似乎这个解决方案可能会起作用。

替换

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

代码中的

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

假设行A中的所有单元格都具有要复制的列的值。

答案 1 :(得分:0)

当然,您可以使用范围对象同时选择两个范围。

插入代码顶部;

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 

希望这有帮助! 如果它做了投票将非常感谢!