• 締切済み

値のコピー

Book1.csvの(A1:M17)と(A27:Q43)の値だけをBook2.xlsのsheet1とsheet2にコピーさせたいのですが Book2.xlsに(A27:Q43)の値だけしかコピー出来ないのですがどこが間違っているのでしょうか? CSVの場合、形式が異なる為出来ないのでしょうか? ご教授よろしくお願いいたします。 Sub test() Sheets("sheet1").Select Range("A1:M17").Copy Sheets("sheet1").Select Range("A27:Q43").Copy Workbooks.Open(Filename:="C:\sample\Book2.xls").RunAutoMacros Which:=xlAutoOpen Sheets("sheet1").Range("A1:M17").PasteSpecial Paste:=xlValues Sheets("sheet2").Range("A1:Q19").PasteSpecial Paste:=xlValues Application.CutCopyMode = False Application.DisplayAlerts = False ActiveWorkbook.Save ActiveWorkbook.Close End Sub

みんなの回答

  • mar00
  • ベストアンサー率36% (158/430)
回答No.2

Sheets("sheet1").Select Range("A1:M17").Copy Sheets("sheet1").Select Range("A27:Q43").Copy でコピーの選択範囲が、Range("A27:Q43")になっています。 2回コピーの選択範囲を選択すると最後に指定した選択範囲が対象になります。 Sheets("Sheet1").Select Range("A1:M17").Copy Workbooks.Open(Filename:="C:\sample\Book2.xls").RunAutoMacros Which:=xlAutoOpen Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlPasteValues Windows("Book1.csv").Activate Range("A27:Q43").Copy Windows("Book2.xls").Activate Sheets("Sheet2").Range("A1").PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False Application.DisplayAlerts = False ActiveWorkbook.Save ActiveWorkbook.Close にすればうまくいくと思います。 Application.DisplayAlerts = Falseは以下の処理がBook2.xlsを上書保存後、 閉じるだけのようなので必要ないように思います。 ActiveWorkbook.Save ActiveWorkbook.CloseはBook2.xlsを上書保存後、閉じるだけのようなので ActiveWorkbook.Close Trueにすれば、上書保存後、閉じるてくれます。 TrueをFalseにすれば保存しないで閉じます。

MQ80975
質問者

お礼

無事解決出来ました。ありがとうございました。

  • f272
  • ベストアンサー率46% (8532/18263)
回答No.1

コピーバッファはひとつだけということ。 コピーして貼り付け、またコピーして貼り付けてください。 コピーしてまたコピーして、それから貼り付けてまた貼り付けて、ではだめです。

MQ80975
質問者

お礼

無事解決出来ました。ありがとうございました。

関連するQ&A

専門家に質問してみよう