2014-08-28 88 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 

希望這有助於! 如果它做了一個投票將不勝感激!

相關問題