我有一個精簡版工作簿,其中包含可變數量的工作表,其中名稱爲table1,然後表格的其餘部分稱爲數據,數據(1),數據(2)等。我想要複製所有名稱以「data」開頭的表格的&行並將其粘貼到名爲「Table1」的工作表中。將工作表合併爲一個
有人可以幫助我嗎?
我有一個精簡版工作簿,其中包含可變數量的工作表,其中名稱爲table1,然後表格的其餘部分稱爲數據,數據(1),數據(2)等。我想要複製所有名稱以「data」開頭的表格的&行並將其粘貼到名爲「Table1」的工作表中。將工作表合併爲一個
有人可以幫助我嗎?
根據這些信息,你可以嘗試這樣的事:
Sub getDataFromSheets()
'loop throug all sheets in workbook
For Each sh In ThisWorkbook.Worksheets
'check sheet name
If Left(sh.Name, 4) = "data" Then
With sh
'get last row on data sheet
'***** CHANGE THE COLUMN LETTER IF REQUIRED
lRow = .Cells(.Rows.Count, "A").End(xlUp).Row
'get last row on table sheet
lRowTB = Sheets("Table1").Cells(Sheets("Table1").Rows.Count, "A").End(xlUp).Row + 1
'copy the data from data to table sheet
'***** ADJUST THE COLUMN LETTERS TO YOUR NEED *******
.Range("A1:E" & lRow).Copy Destination:=Sheets("Table1").Range("A" & lRowTB)
End With
End If
Next sh
End Sub
很好!我怎樣才能提取數據表的第一行btw?每個數據表的第一行包含列名,我不想複製。調整大小應該是答案,但我如何在這裏使用它? –
在複製行中將'A1'更改爲'A2':.Range(「A2:E」&lRow).Copy Destination:= Sheets(「Table1」)。Range(「A」&lRowTB)' –
您!有用!;當你有時間的時候你能看看這個嗎? http://stackoverflow.com/questions/37946185/updating-value-pair-with-a-key –
我做了一些增加的代碼,並添加到取所需列的小計的能力:
Application.DisplayAlerts = False
ActiveWorkbook.Worksheets("Grand_Table").Delete
Application.DisplayAlerts = True
Sheets(1).Select
Worksheets.Add
Sheets(1).Name = "Grand_Table"
Sheets(2).Activate
Range("A1").EntireRow.Select
Selection.Copy Destination:=Sheets(1).Range("A1")
For J = 2 To Sheets.Count
Sheets(J).Activate
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Last = FindLastRow(Sheets(1))
Selection.Copy
With Sheets(1).Cells(Last + 1, "A")
.PasteSpecial xlPasteValues
.PasteSpecial xlPasteValues
.PasteSpecial xlPasteFormats
End With
Next
'Application.CutCopyMode = False
Sheets("Grand_Table").Activate
Sheets("Grand_Table").UsedRange.Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(6), _
Replace:=True, PageBreaks:=True, SummaryBelowData:=True
你可以分享你已經嘗試過的嗎? –
我只能通過選擇行數來記錄這個宏,但這必須可變地完成。我不能不記錄一個宏 –
是否在同一列中的每個工作表上的數據? –