1 つのワークブック (「x1」) から 1 つの特定のワークシート (そのワークシートのタイトルを「x」と呼ぶ) をマスター ワークブック (そのワークブックを「xmaster」と呼ぶ) にコピー アンド ペーストするマクロを適用しようとしています。ワークブック x1 からワークシートをコピーして貼り付けます。また、ワークシートのタイトル「x」をセル B3 に変更する必要があります。これは、次のワークブックに移動する前に行う必要があります。
たとえば x100 までの workBOOK x1 に対してこれを行う必要があります。ただし、ワークブックを名前で参照することはできません。実際のソート可能な方法ではないテキストの文字列にそれぞれ名前が付けられているためです。
私が知っているこのコードは、「x」を「x1」から「xmaster」にコピーし、シートの名前を変更し、リンクを解除すると、次のようになります。
Sub CombineCapExFiles()
Sheets("Capital-Projects over 3K").Move After:=Workbooks("CapEx Master File.xlsm").Sheets _
(3)
ActiveSheet.Name = Range("B3").Value
Application.DisplayAlerts = False
For Each wb In Application.Workbooks
Select Case wb.Name
Case ThisWorkbook.Name, "CapEx Master File.xlsm"
' do nothing
Case Else
wb.Close
End Select
Next wb
Application.DisplayAlerts = True
End Sub
Activate Previous ウィンドウが機能せず、その部分を修正する方法もわかりません。
ただし、ディレクトリ内のすべてのワークブックをループするようにこれを構築する方法がわかりません。
これを使用する必要があります:?
MyPath = "C:\directory here"
strFilename = Dir(MyPath & "\*.xlsx", vbNormal) 'change to xlsm if needed ?
If Len(strFilename) = 0 Then Exit Sub ' exit if no files in folder
Do Until strFilename = ""
'Your code here
strFilename = Dir()
Loop
追加の制約は、xmaster でマクロを実行する必要がないことです (以前のワークブックから名前が変更されるシート "x" がないため、エラーが発生します)。
ありがとう!マシュー