Excel VBA 質問スレッド №1103 (未解決)
別ブックにデータを転記
投稿者 : 謎 投稿日時 : 2022/11/10(Thu) 20:31:46 OS : 未指定 EXCEL : 未指定
VBAよくわからないのですが、Aと言う名前のブックに31シートあります。各々のシートのF1に文字が入っております。例えば"あ"だとします。 Bブックには"あ""い"などのシート名でc4からj147の範囲で、文字が入力されております。
もし、Aというブックの、シート2ページ目のF1に、"あ"と文字が入っていたら、Bブックの"あ"のシートから、c4からj147の範囲をコピーして貼り付けしたいのです。
下記だとエラーが出まくりでなんだかわかりません。ご教示よろしくお願いします。
VBAよくわからないのですが、Aと言う名前のブックに31シートあります。各々のシートのF1に文字が入っております。例えば"あ"だとします。 Bブックには"あ""い"などのシート名でc4からj147の範囲で、文字が入力されております。
もし、Aというブックの、シート2ページ目のF1に、"あ"と文字が入っていたら、Bブックの"あ"のシートから、c4からj147の範囲をコピーして貼り付けしたいのです。
下記だとエラーが出まくりでなんだかわかりません。ご教示よろしくお願いします。
Sub Sample()
Dim sh1 As Worksheet, sh2 As Worksheet
Dim key
Dim Ws As Worksheet
Dim i
For i = 2 To 30
'データ元シート
Set sh1 = Workbooks("A.xlsx").Sheets(i)
'検索シート名
key = sh1.Range("F1").Value
Set sh2 = Workbooks("B.xlsm").Sheets(key)
sh1.Range("C4:J147").Value = sh2.Range("C4:J147").Value
Next i
End Sub
スポンサーリンク
[返信 1] Re : 別ブックにデータを転記
投稿者 : さんこう 投稿日時 : 2022/11/10(Thu) 21:14:09
>エラーが出まくり
どんなエラーが、どこででるのでしょうか?
>エラーが出まくり
どんなエラーが、どこででるのでしょうか?
[返信 2] Re : 別ブックにデータを転記
投稿者 : 謎 投稿日時 : 2022/11/10(Thu) 21:19:49
■[返信 1] さんこうさん(2022-11-10 21:14:09)の記事
> >エラーが出まくり
>
> どんなエラーが、どこででるのでしょうか?
>
Set sh2 = Workbooks("B.xlsm").Sheets(key)の部分です。
インデックスが有効範囲にありません。と出ます。
■[返信 1] さんこうさん(2022-11-10 21:14:09)の記事
> >エラーが出まくり
>
> どんなエラーが、どこででるのでしょうか?
>
Set sh2 = Workbooks("B.xlsm").Sheets(key)の部分です。
インデックスが有効範囲にありません。と出ます。
[返信 3] Re : 別ブックにデータを転記
投稿者 : 謎 投稿日時 : 2022/11/10(Thu) 21:46:05
追記です。
F1の文字は、関数の結果なのですが関係ありますでしょうか。。
実際は、Aブックの各シートF1には(シート名は一から始まる整数になっています)、曜日が別シート日付からテキスト関数で反映された曜日が入っていて、Bブックのシート名は曜日になっています。
初心者どころか、色んなサイトのをチラ見してくっつけて作った基礎も分かっていないので、驚くところに間違いがあるかもしれません。(普通絶対わかるだろというようなところ)
すみませんがご教授よろしくお願いします。
追記です。
F1の文字は、関数の結果なのですが関係ありますでしょうか。。
実際は、Aブックの各シートF1には(シート名は一から始まる整数になっています)、曜日が別シート日付からテキスト関数で反映された曜日が入っていて、Bブックのシート名は曜日になっています。
初心者どころか、色んなサイトのをチラ見してくっつけて作った基礎も分かっていないので、驚くところに間違いがあるかもしれません。(普通絶対わかるだろというようなところ)
すみませんがご教授よろしくお願いします。
[返信 4] Re : 別ブックにデータを転記
投稿者 : さんこう 投稿日時 : 2022/11/10(Thu) 22:27:47
> Set sh2 = Workbooks("B.xlsm").Sheets(key)の部分です。
> インデックスが有効範囲にありません。と出ます。
エラーの原因として、
・ブック「B.xlsm」が開かれていない
・シートがない
などが考えられます。
どちらが原因か特定できるように、
分けて書いてみてはいかがでしょうか。
Set wb2 = Workbooks("B.xlsm")
Set sh2 = wb2.Sheets(key)
> Set sh2 = Workbooks("B.xlsm").Sheets(key)の部分です。
> インデックスが有効範囲にありません。と出ます。
エラーの原因として、
・ブック「B.xlsm」が開かれていない
・シートがない
などが考えられます。
どちらが原因か特定できるように、
分けて書いてみてはいかがでしょうか。
Set wb2 = Workbooks("B.xlsm")
Set sh2 = wb2.Sheets(key)
[返信 5] Re : 別ブックにデータを転記
投稿者 : 謎 投稿日時 : 2022/11/11(Fri) 12:34:25
ありがとうございました。
無事解決しました!やはり分けて入力したところkeyがエラーで、もう一度見直したら、日曜日というシートを用意していなかったため、エラーだったようで、ダミー(本当はコピーする必要のないシート)の日曜日というシートを追加したら解決できました!
本当にありがとうございました!
ありがとうございました。
無事解決しました!やはり分けて入力したところkeyがエラーで、もう一度見直したら、日曜日というシートを用意していなかったため、エラーだったようで、ダミー(本当はコピーする必要のないシート)の日曜日というシートを追加したら解決できました!
本当にありがとうございました!
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2026-04-03 13:47:08 )