2017-03-18 4 views
0

フォルダ内の複数のブックのすべてのシートを別のブックにコピーします。私はコードの下にあるが、不要な書式を避けるために特別な値だけを貼り付ける方法を知らない。フォルダ内の複数のブックのデータを1つのブックに貼り付けます。特別な値を貼り付けます。

Sub GetSheets() 

Path = "C:\Users\mechee69\Download\" 
Filename = Dir(Path & "*.xls") 
Do While Filename <> "" 
    Workbooks.Open Filename:=Path & Filename, ReadOnly:=True 
    For Each Sheet In ActiveWorkbook.Sheets  
     Sheet.Copy After:=ThisWorkbook.Sheets(1)  
    Next Sheet 
    Workbooks(Filename).Close 
    Filename = Dir() 
Loop 

End Sub 
+0

[単一のブックに複数のExcelワークブックを結合](http://stackoverflow.com/questions/26455076/combine-multiple-excel-workbooks-into-a-single-workbook)の可能性の重複 – ti7

答えて

1

以下のコードを試してみて、あなたがしたい場合、それはPasteSpecialだけValues、あなたもFormatsをコピーするために拡張することができます。

Option Explicit 

Sub GetSheets() 

Dim Path As String, Filename As String 
Dim WB As Workbook 
Dim Sht As Worksheet, ShtDest As Worksheet 

Path = "C:\Users\mechee69\Download\" 
Filename = Dir(Path & "*.xls*") 

Application.ScreenUpdating = False 
Application.DisplayAlerts = False 

Do While Filename <> "" 
    Set WB = Workbooks.Open(Filename:=Path & Filename, ReadOnly:=True) 
    For Each Sht In WB.Sheets 
     Set ShtDest = ThisWorkbook.Sheets.Add(After:=Sheets(1)) 
     Sht.Cells.Copy 
     ShtDest.Name = Sht.Name '<-- might raise an error in case there are 2 sheets with the same name 
     ShtDest.Cells.PasteSpecial xlValues 
    Next Sht 
    WB.Close 
    Filename = Dir() 
Loop 

Application.ScreenUpdating = True 
Application.DisplayAlerts = True 

End Sub 
+0

それは目的を果たした。ありがとう。 – mechee69

+0

@ mechee69あなたは歓迎です。「回答」とマークしてください。** V **をクリックすると、回答が緑色に変わります。 –

+0

結果のブックはシート名を変更します。新しいシート名が元のシート名と同じようにコードを編集してください。 – mechee69

関連する問題