質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

294閲覧

シートの繰り返し処理につきまして

GKHHKJ

総合スコア39

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2022/06/28 01:24

シート名が「Page1」から「Page50」まであるシートを
for next 処理したいのですが、どのように記載すればよいでしょうか。

'シートPage〇まで転記 毎月更新
Dim i As Integer
For i = 1 To 50

Worksheets("Sheet1").Range("A" & Cells(Rows.Count, 1).End(xlUp).Row + 1) = Workbooks("エラーリスト.xlsx").Worksheets("Page(i)").Cells(13, 2).Value

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tatsu99

2022/06/28 01:41 編集

右辺のシート名は"Page(1)"~"Page(50)" ということですか? それとも "Page1"~"Page50" ですか?
GKHHKJ

2022/06/28 02:00

"Page1"~"Page50"です!
guest

回答2

0

ベストアンサー

インデックスが有効範囲にありません、と出てきてしまいます…

下記のように黄色の行で停止すると思います。
イメージ説明

その時、Worksheets(sname).Cells(13, 2).Value のsnameにマウスを当ててください。
Page1~Page50の何れかの値が表示されるはずです。
その表示された値が、エラーリスト.xlsxのシート内に存在しない為、エラーになっています。
(例 snameがPage3なら、エラーリスト.xlsxにシート:Page3が存在しない)

投稿2022/06/28 03:24

tatsu99

総合スコア5438

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GKHHKJ

2022/06/28 03:58

ご回答くださりありがとうございます。変数の定義分とfor分を入れ替えたら解決しました!
guest

0

右辺のシート名はPage1~Page50の前提です。
以下のようにしてください。

VBA

1 Dim i As Integer 2 Dim sname As String 3 For i = 1 To 50 4 sname = "Page" & i 5 Worksheets("Sheet1").Range("A" & Cells(Rows.Count, 1).End(xlUp).Row + 1) = Workbooks("エラーリスト.xlsx").Worksheets(sname).Cells(13, 2).Value 6 Next 7

投稿2022/06/28 01:46

tatsu99

総合スコア5438

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GKHHKJ

2022/06/28 03:14

インデックスが有効範囲にありません、と出てきてしまいます…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問