こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel VBA連続コピー、貼付処理について

特定のフォルダ内に格納されている複数のExcelファイルの「sheet1」シートのデータを
所定のExcelファイルにコピー&ペーストしたいのですが、うまくいきません。
(貼付先のファイルを閉じようとするとエラーが発生します。)

どうすればできるようになるでしょうか?

ご教授の程よろしくお願いいたします。

--------------------------------------------------------------------

Sub copy_test()

Dim myPath As String
Dim copyFile As String
Dim pasteFile As String
Dim n As Long

myPath = "C:\copy\"
copyFile = Dir(myPath & "*.xls*")
pasteFile = "C:\paste\paste_data.xlsx"
n = 2

Do Until copyFile = ""

Workbooks.Open Filename:=myPath & copyFile
Workbooks(copyFile).Worksheets("sheet1").Range("A2:L201").Copy
Workbooks.Open Filename:=pasteFile
'Workbooks(pasteFile).Worksheets("paste_data").Active
Range("B1").Select
Selection.End(xlDown).Select
Selection.End(xlToLeft).Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Workbooks(pasteFile).Close False

Application.CutCopyMode = False
Workbooks(copyFile).Close False


n = n + 999
copyFile = Dir()

Loop

End Sub

---------------------------------------------------------------------------------

投稿日時 - 2012-09-16 13:25:25

QNo.7700469

すぐに回答ほしいです

質問者が選んだベストアンサー

あれあれ、ごめんなさい、非常に類似のご相談を繰り返し投稿して一向に解決しない別のご質問者さんと、勘違いしていたようです。

それで、あなたの前回のご相談では「A2:L1000を漏れなくコピー貼り付ける」というお話になっていましたが、今回あなたが作成したマクロは「実際には1000行までぎっちりデータが詰まってるわけではない」という意図になっています(残念ながらマクロは間違っていますけど)。事実はどうなんでしょうか?



とりあえず今回のあなたが作成したマクロをベースにすると:
sub macro1()
 dim myPath as string
 dim myFile as string
 dim w as workbook

 mypath = "c:\copy\"
 myfile = dir(mypath & "*.xls*")
 set w = workbooks.open("c:\paste\paste_data.xlsx")

 do until myfile = ""
  workbooks.open mypath & myfile
  activeworkbook.worksheets("Sheet1").select
  range("A2:L201").copy w.worksheets("paste_data").range("A65536").end(xlup).offset(1)
  activeworkbook.close false
  myfile = dir()
 loop

 w.close true
end sub

投稿日時 - 2012-09-16 14:06:45

お礼

できました!
回答ありがとうございます。


>それで、あなたの前回のご相談では「A2:L1000を漏れなくコピー貼り付ける」
>というお話になっていましたが、今回あなたが作成したマクロは「実際には1000行
>までぎっちりデータが詰まってるわけではない」という意図になっています(残念ながら
>マクロは間違っていますけど)。事実はどうなんでしょうか?

→当初は、決まった範囲のコピー&貼り付けであったのですが、実際来たら、ファイルによって1、2行多いものもあったため、内容を変えました。
(今回投稿したマクロでは、200行でしたが、実際は1000行~1002行でした。)

ほんとにありがとうございます。助かりました。

投稿日時 - 2012-09-16 15:17:12

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問