2017-01-05 11 views
0

"source.xlsm"とラベルが付いたワークブックから "Sheet1"をコピーしようとしています。実行時には開かず、 "target.xlsx"というラベルが付けられています。開いているブックから既存の開いていないブックにコピーした貼り付けシート

私は以下のコードを持っており、 "C:\"ディレクトリ全体は何もしていないようです。ディレクトリを置くことも可能ですか?私はTarget.xlsxを開かずにこれを行う方法を見つけることができません。

ActiveSheet.Select 
ActiveSheet.Copy After:=Workbooks("C:\Target.xlsx").Sheets("FirstSheet") 
+0

現在、私は、「C:\ Target.xlsx」の範囲外の添字ていると私はターゲットにする方法を把握することはできませんそのファイル。 – Bailey

+0

シートをコピーする前に、コピー先のブックを開いておく必要があります。 –

+0

宛先ブックを開くことなくこれを行う方法はありますか? – Bailey

答えて

1

あなたはすでにそれを考え出したが、提案編集:

Dim wb As WorkBook 
''Open 2nd Workbook 
Set wb = Workbooks.Open(Filename:="C:\Archive.xlsx") 

''Copy To Different Workbook 
Workbooks("Source.xlsx").Sheets("Source").Copy _ 
     After:=wb.Sheets("Archive") 

''Close 2nd Workbook 
wb.Save 
wb.Close 
+0

ありがとう、これは私がまだ学んでいるように私のマクロを短縮し整理する方法についての洞察を与える。 あなたの以前のコメントがなくても、IDはまだこれでうんざりしているので、私はあなたに答えを出すつもりです。 – Bailey

0

は、ティムが提供する有益な情報を自分の質問に答えました。

''Open 2nd Workbook 
Workbooks.Open Filename:="C:\Archive.xlsx" 

''Copy To Different Workbook 
Workbooks("Source.xlsx").Sheets("Source").Activate 
ActiveSheet.Copy After:=Workbooks("Archive.xlsx").Sheets("Archive") 

''Close 2nd Workbook 
Workbooks("Archive.xlsx").Sheets("Archive").Activate 
ActiveWorkbook.Save 
ActiveWorkbook.Close 
+0

Workbooks( "Source.xlsx")Sheets( "Source")を組み合わせて 'Activate'を避けることができます。 ( "Archive.xlsx"):コピーした後:ワークブック( "Archive.xlsx"):ワークブック( "Source.xlsx") .Sheets( "アーカイブ") '。 (2番目の 'Activate'は、" Source "シートではなく" Archive "シートでアーカイブを確実に保存することを前提としていますが、そうでなければそれを取り除くこともできます) – YowE3K

+0

私のコメントを無視する - ティムの答えはそれを組み込む(そして良い) – YowE3K

関連する問題