[[20210922150233]] 『他のシートを開いて、コピーする マクロ』(猛暑) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『他のシートを開いて、コピーする マクロ』(猛暑)

こんにちは。
コピー元のファイルから指定ファイルにコピーするマクロを組みたいです。
下記コードにて実行するのですが、エラーとなります。
何が間違っているのでしょうか。

エラーメッセージは
「実行時エラー438:オブジェクトは、このプロパティまたはメソッドをサポートしていません」
デバックを押すと、下記コード部分が黄色となります。(一番最後の行)
Workbooks("賞味期限.csv").Worksheets("賞味期限").Range ("A1")

2つのファイルは同じフォルダに保存し、実行時は2つのファイルを開いている状態です。

何卒、宜しくお願い致します。

Sub コピー()

   Dim FilePath As String

   'ファイルの入っているフォルダをパスを設定
   FilePath = ThisWorkbook.Path

   'コピー元のブックを開く
   Workbooks.Open ThisWorkbook.Path & "\在庫管理表.xlsm"
   'データをコピー
   Workbooks("在庫管理表.xlsm").Worksheets(1).Range("B:B,AG:AG").Copy
    Workbooks("賞味期限.csv").Worksheets("賞味期限").Range ("A1")

End Sub

< 使用 Excel:Excel2013、使用 OS:unknown >


■1
↓は【賞味期限.csv】というブックの【賞味期限】の【A1】セル という意味です。
 Workbooks("賞味期限.csv").Worksheets("賞味期限").Range ("A1")

セルだけ言われてもExcel君からすれば 何をすればよいのか理解できないでしょう。

■2
Copyメソッドの Destinationとして指定しているつもりなら 改行しては駄目です
(もしくは _ を使って1行であることをExcel君に伝えましょう)

    Sub 研究用()
        Workbooks.Open(ThisWorkbook.Path & "\在庫管理表.xlsm").Worksheets(1).Range("B:B,AG:AG").Copy _
        Workbooks("賞味期限.csv").Worksheets("賞味期限").Range("A1")
    End Sub

(もこな2 ) 2021/09/22(水) 15:32


もこな2さま

ありがとうございます、出来ました。
_ が抜け続いていない状態だったのですね。
詳しくご説明頂きありがとうございます。

もし可能であれば、もう一つご確認して頂きたいのです。
在庫管理票のシートを毎日追加コピーしております。(一番左端へ)
そこで、一番左端のシートを賞味期限のブックにコピーのコードWorksheets(1)としているのですが、
違うシートの内容をコピーしてしまいます。

一番左端シートのコードはWorksheets(1)ではないのでしょうか。

図々しいのですが何卒、宜しくお願い致します。

(猛暑) 2021/09/22(水) 15:52


>一番左端シートのコードはWorksheets(1)ではないのでしょうか。
基本はそれでよいとおもいます。

ただ見た目が左端でも、その前に非表示シートがあったりしたらそうもいかなくなります。
イミディエイトに↓のように入力して、どのシートが返ってくるかしらべてみてはどうでしょうか?

 ?Workbooks("在庫管理表.xlsm").Worksheets(1).Name

(もこな2 ) 2021/09/22(水) 16:01


もこな2様

非表示シートがありました。
元々他の方が作成したファイルでしたので、気づきませんでした。
アドバイスありがとうございます。
助かりました!!

(猛暑) 2021/09/22(水) 17:07


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.