ワークシートをコピーして新規として保存するマクロがあります。
しかし、2 つのワークシートをコピーして 1 つに結合したいのですが、ワークシートは 2 つの異なるブックにあります。
たとえば、workbook1 には 2 つのワークシート (worksheet1、worksheet2) が含まれ、workbook2 には 3 つのワークシート (worksheet1、worksheet2、worksheet3) が含まれます。
workbook1 から worksheet1 をコピーし、workbook2 から worksheet1 をコピーします。どちらも同じテーブル形式なので、それらを結合します。
方法がわかりません。同じワークブックから複数のワークシートをコピーする方法しか知りません。また、それらを結合する方法も知っています。唯一の問題は、ワークブック1とワークブック2という異なるワークブックからワークシート1の両方をコピーする方法です。
データをコピーするための簡単なコードしかありません。ちなみに、これが私のコードです:
saveFolder = "C:\Document\Macro"
path = "C:\Document\Workbook1"
fname = "Sample Account.xlsx"
Workbooks.Open path & fname
Sheets("Account1").Copy
ActiveWorkbook.SaveAs saveFolder & "\Conso.xlsx", FileFormat:=51
Workbooks(fname).Close
他のファイルはフォルダにありますワークブック2ファイル名は追加アカウント
答え1
この VBA (マクロ) コードは、ソース ワークブックから選択したワークシートをコピーして、アクティブ ブックに結合するのに役立ちます。
このコードは標準ではなくインタラクティブであるため、汎用性に優れています。
Sub CombineSheets()
Dim sPath As String
Dim sFname As String
Dim wBk As Workbook
Dim wSht As Variant
Application.EnableEvents = False
Application.ScreenUpdating = False
sPath = InputBox("Enter File Path Of Source Workbook(s)")
ChDir sPath
sFname = InputBox("Enter the Filename")
sFname = Dir(sPath & "\" & sFname & ".xl*", vbNormal)
wSht = InputBox("Enter Worksheet Name To Copy")
Do Until sFname = ""
Set wBk = Workbooks.Open(sFname)
Windows(sFname).Activate
Sheets(wSht).Copy Before:=ThisWorkbook.Sheets(1)
wBk.Close False
sFname = Dir()
Loop
ActiveWorkbook.Save
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
使い方:
- このコードをコピーして、マスター ワークブック (シートを結合する場所) の標準モジュールとして貼り付けます。
- マクロを実行します。
- まず、ソース ワークブックへのパスを要求します。
注記、ファイルパスをコピーして貼り付けることをお勧めします。
次に、ワークブックの名前を尋ねます。ワイルドカードを使用することもできますし、 のようなワークブックの名前を使用することもできます
Myworkbook
。最後に、コピーするシート名を尋ねます。