2016-06-21 2 views
1

私はmasterworkworkbookを持っています。これには、名前がtable1であり、残りのシートがdata、data(1)、data(2)などと呼ばれるワークシートがあります。すべての列&の名前が「data」で始まるスプ​​レッドシートの行を「Table1」というワークシートに貼り付けます。ワークシートを1つにマージする

誰かがこれを手伝ってくれますか?

+0

あなたはすでに試したことを分かち合うことができますか? –

+0

私は行の量を選択することによってこれをマクロでしか記録できませんが、これは可変に行わなければなりません。私はマクロを記録せずにそれを行うことはできません –

+0

各シートのデータは同じ列にありますか? –

答えて

1

情報に基づいて、あなたはこのような何かを試みることができる:

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 
+0

great!どのように私はデータシートの最初の行を抽出することができますbtw?各データシートの最初の行には、コピーしたくない列名が含まれています。サイズを変更する必要がありますが、ここでどのように使用できますか? –

+0

コピーラインの '' A1''を '' A2''に変更してください。 '' .Range( "A2:E"&lRow)コピー先:=シート( "Table1")範囲( "A"&lRowTB) ' –

+0

君は!できます!;あなたは時間があるときにもこれを見ることができますか? http://stackoverflow.com/questions/37946185/updating-value-pair-with-a-key –

0

を私はコードにいくつかの追加を行い、目的の列の小計を取る能力を追加しました:

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 
関連する問題