VBAについて質問です。
定期的にBook1からBook2へコピペする作業があるのですがBook1のシート名(日付)が都度変更されます。
現在以下のようになっています。
Sub 助()
' 助 Macro
Dim FilePath As String
FilePath = ThisWorkbook.Path
Workbooks.Open FilePath & "Book1.xlsx"
Workbooks("Book1.xlsx").Worksheets("2023_10_18").Range("A1:J13").Copy _
Workbooks("Book2.xlsm").Worksheets("sheet1").Range("A1")
Workbooks("Book1.xlsx").Close savechanges:=False
End Sub
上記ですと2023_10_20のシートであれば問題なく動作するのですが当然たの日付だとエラーになります。
ネットで調べたところSheets(1).Selectとすれば良いとの事で上記のWorksheets("2023_10_18")部分をSheets(1).Selectに変更してみたのですがエラーとなってしまいます。
どのように変更すれば良いのでしょうか。
宜しくお願いします。
No.2ベストアンサー
- 回答日時:
こんにちは
>Sheets(1).Selectとすれば良いとの事で~~
それって、「ブックのシートタブの一番左側を選択する」ってことですけれど、ご質問の処理のブックでも「一番左側のシート」で良いのでしょうか?
もしそうであるならば、
>Workbooks("Book1.xlsx").Worksheets("2023_10_18").Range("A1:J13").Copy _
の部分を
Workbooks("Book1.xlsx").Worksheets(1).Range("A1:J13").Copy _
とすればそのようになります。
この場合は、ブック名が日付であろうとなかろうと、一番最初のシートを対象とします。
(ブック内に一つしかシートが存在しないのであれば、これで十分でしょう)
きちんと日付で判断するのならば・・
>Book1のシート名(日付)が都度変更されます。
コピーしたいシートの日付には何らかの特徴があると思いますので、それに基づいて検索すれば良いでしょう。
例えば、
・実行時の日付と一致するシート
・ブック内の一番最新の日付のシート
などなど。
No.3
- 回答日時:
Book1 の日付のシート("2023_10_18")が1つで他にない場合や常にコピーする日付のシートがアクティブになっている場合はシート名を取得すればいいと思います。
Dim N As String
Workbooks.Open FilePath & "Book1.xlsx"
N = ActiveSheet.Name
Workbooks("Book1.xlsx").Worksheets(N).Range("A1:J13").Copy _
・・・
またコピーする日付シートが書き足されていくなどして最終位置にあるならBookのシート数がその数が最終シート番号だから
Dim C As Integer
C = Workbooks("Book1.xlsx").Sheets.Count
Workbooks("Book1.xlsx").Worksheets(N).Range("A1:J13").Copy _
・・・
とすればいいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) シート名をフォルダ名に変更 1 2021/12/01 15:59
- Visual Basic(VBA) サブフォルダ含むすべてのフォルダの Excel 検索 4 2021/12/13 09:33
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/20 14:46
- Visual Basic(VBA) 空のシートに関数を入れたい 2 2021/12/03 15:08
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) シート名でファイル検索する 2 2021/11/30 17:05
- Visual Basic(VBA) ワイルドカード「*」を使うとうまくいかないマクロの添削をお願いします 3 2022/03/26 09:39
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Excel(エクセル) 【マクロ】PasteSpecialメソッドにて、コードが動かない理由が分かりません 2 2023/08/15 20:47
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
マクロを実行するとエクセルが小さく表示される
Excel(エクセル)
-
エクセルで⑤番の操作が分かりません。どういう関数が良いんですか?
Excel(エクセル)
-
エクセルの関数でわからないことあるのでコード付きで教えてください
Excel(エクセル)
-
-
4
【マクロ】for nextステートメントがわかりません。例あり。
Excel(エクセル)
-
5
DBCS関数とは何ぞやッ!
Excel(エクセル)
-
6
エクセルのハイパーリンクで質問です。
Excel(エクセル)
-
7
エクセルの行を巾を変えずに増やす方法
Excel(エクセル)
-
8
同じパターンで出てくる言葉に通し番号をつけたい
Excel(エクセル)
-
9
エクセルで相対パスの書き方を教えてください
Excel(エクセル)
-
10
同じ型【ハイフンと数字】をぶつけて、イコールである事を証明する関数はありますか?
Excel(エクセル)
-
11
【マクロ】転記ツール。転記先にデータがある場合、上書きするか消すか質問をして欲しい
Excel(エクセル)
-
12
Googleシート「A1」でなくて「A001」にしたいのですが
Excel(エクセル)
-
13
図面上に, ① ② ③………を入れたい
Excel(エクセル)
-
14
エクセルのcountifのワイルドカードについて
Excel(エクセル)
-
15
VBA エクセル で FIND でのエラーについて,教えてください。
Excel(エクセル)
-
16
数値から名前が作成できなくなっているッ!?
Excel(エクセル)
-
17
Excelの関数で教えください。 今作成している表で 例えば A1=D1 A2=D2としてD1に神奈
Excel(エクセル)
-
18
エクセルの画面を終了時の大きさで開きたいのですが、
Excel(エクセル)
-
19
Excelの関数に関する質問です
Excel(エクセル)
-
20
同じ型【ハイフンと数字】だけ抜き出す関数について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
【Excel VBA】データ貼り付け先...
-
エクセルで複数のシートに画像...
-
アクセスからエクセルのシート...
-
エクセルでブック内の倍率がバ...
-
エクセルのシー名を二段表示に...
-
ハイパーリンクでジャンプした...
-
Wordで差し込み印刷時に表示す...
-
【ExcelVBA】マクロの入ったシ...
-
エクセルの2つのシートを並び...
-
EXCELの図形(テキストボックス)...
-
特定のシートのみ再計算させな...
-
EXCELの「シートの見出し」のフ...
-
特定の複数のシートに同じ処理...
-
エクセル、特定のシートにパス...
-
Accessのテーブルを既存のExcel...
-
ワークシートそのものの色を変...
-
特定のシート名のシートのみ除...
-
Excel 全シート上のボタンを削...
-
エクセル、別のシートの表をポ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルで複数のシートに画像...
-
特定のシートのみ再計算させな...
-
エクセルでブック内の倍率がバ...
-
ワークシートそのものの色を変...
-
【ExcelVBA】マクロの入ったシ...
-
エクセルの2つのシートを並び...
-
EXCELの図形(テキストボックス)...
-
ハイパーリンクでジャンプした...
-
エクセルのシート連番の振り直し
-
特定の複数のシートに同じ処理...
-
エクセルのシー名を二段表示に...
-
Wordで差し込み印刷時に表示す...
-
エクセルで、シートの名前を変...
-
エクセルでリンク貼り付けした...
-
エクセル、特定のシートにパス...
-
accessへエクセルの複数のシー...
-
Accessのテーブルを既存のExcel...
-
【Excel VBA】データ貼り付け先...
-
EXCELの「シートの見出し」のフ...
おすすめ情報