私はこのようにそれを行うだろう:
Sub Button1_Click()
Dim source_worksheet As Worksheet
Dim source_workbook As Workbook
Dim target_workbook As Workbook
Set source_workbook = ActiveWorkbook
Set target_workbook = Workbooks.Add()
Set source_worksheet = source_workbook.Sheets("needtocopy")
source_worksheet.Copy Before:=target_workbook.Sheets(1)
End Sub
コードのこの作品は少し冗長ですが、目的はあなたの事が起こっているのアイデアを与えることです。
ターゲットワークブックの選択は、ターゲットtarget_workbook行で行われます。ここでは、(私はこの例ではやっているように)新しいブックを作成したり、既存のワークブックを開くことができます。設定を置き換え、exisitingワークブックを開くに
はこれで行をtarget_workbook:終わり
Set target_workbook = Workbooks.Open("target.xls")
、あなたはいくつかの貯蓄を追加して、同様の機能を閉じることができます。
target_workbook.Save
target_workbook.Close
取得するにはDirでオブジェクトを定義する必要があるフォルダ内のファイルのリスト(Loop through files in a folder using VBA?):
Sub Button1_Click()
Dim source_worksheet As Worksheet
Dim source_workbook As Workbook
Dim target_workbook As Workbook
Set source_workbook = ActiveWorkbook
Set source_worksheet = source_workbook.Sheets("needtocopy")
Dim file As Variant
Dim folder As String
folder = "C:\test\"
file = Dir(folder)
Application.DisplayAlerts = False
While (file <> "")
If InStr(file, "Allocation") <> 0 Then
Set target_workbook = Workbooks.Open(folder & file)
source_worksheet.Copy Before:=target_workbook.Sheets(1)
target_workbook.Save
target_workbook.Close
End If
file = Dir
Wend
Application.DisplayAlerts = True
End Sub
あなたのコードに何の問題がありますか? – user3598756