2016-08-17 12 views
0

数式を含むシートを他のワークブックにコピーしたいので、他のワークブックでも使用できる一般的なターゲットを持つことが重要です。ただ一つではない。 ここに私のコードです:VBAでワークシートを1つのブックから他のブックにコピーする方法

Sub Macro1() 

    Windows("Filefromcopy.xls").Activate 
    Sheets("needtocopy").Select 
    Sheets("needtocopy").Copy Before:=Workbooks("target.xls").Sheets(1) 
End Sub 

私はいくつかの助けてくれますか?

ありがとうございます!

+0

あなたのコードに何の問題がありますか? – user3598756

答えて

0

私はこのようにそれを行うだろう:

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

ああ、ありがとう、ありがとう!しかし、実際には私の実際の問題は一般的なターゲットを持つことです。そのため、ファイル名に "Allocation"という単語が含まれているすべてのファイルを使用できます。あなたは私にそれのためにいくつかのアイデアをくれてもいいですか? –

+0

私はそれを試して、それは私のために働かなかった。メッセージやデバッグがありません。私がターゲットファイルを開くと、マクロを有効または無効にしてもシートをコピーしないというメッセージしか表示されません。ターゲットファイルとソースファイルをデスクトップに保存しました。何も起こりません.. –

+0

私はそれをもう一度試してみて、それは私のために働く。フォルダ変数のパス設定を変更しましたか?また、Application.DisplayAlerts = Falseをコメントアウトしてエラーメッセージを表示してみてください。 – Gabor

関連する問題