[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シートのセレクトの時に、インデックスが有効範囲にありませんが出てしまう。』(あずき)
テーブルに記憶したシート名を順番に読み込んで処理を
実行したいのですがシートのセレクトの所で実行時エラー'9'の
インデックスが有効範囲にありませんになってしまいます。
Set ReadSheet = Sheets(Uke1(UkeCnt)).Select
ネットでも調べてみたものの初心者の為、いまいち内容が
把握できません。
対処方法を教えて下さい。宜しくお願い致します。
' シート名を記憶するテーブル
Const cnsSheet = 15 Dim Uke1(cnsSheet) As String Dim ReadBook As Workbook Dim ReadSheet As Worksheet : ' テーブルにシート名を記憶 Uke1Cnt = 0 For InCnt = 4 To 15 If Range("C" & InCnt) <> "" Then Uke1Cnt = Uke1Cnt + 1 Uke1(Uke1Cnt) = Range("C" & InCnt) End If Next InCnt : ' 複数シートの処理 Workbooks(Uke1Book).Activate For UkeCnt = 1 To Uke1Cnt Set ReadSheet = Sheets(Uke1(UkeCnt)).Select :
Next UkeCnt
< 使用 Excel:Excel2013、使用 OS:Windows10 >
Set ReadSheet = Sheets(Uke1(UkeCnt)).Select ↓じゃないですか(Selectは要らない) Set ReadSheet = Sheets(Uke1(UkeCnt))
それでダメなら Uke1(UkeCnt) が何になっているか調べてください。
(半平太) 2020/05/20(水) 11:32
Set ReadSheet = Sheets(Uke1(UkeCnt))で実行してみましたが
同じエラーになります。
Uke1(UkeCnt)の内容を確認しましたがシート名が正しく表示
されました。
その他どのような対処方法が有るのかご教授をお願いします。
(あずき) 2020/05/20(水) 12:01
Set ReadSheet = Workbooks(Uke1Book).Sheets(Uke1(UkeCnt))
(もこな2 ) 2020/05/20(水) 12:07
Set ReadSheet = Workbooks(Uke1Book).Sheets(Uke1(UkeCnt))を実行押してみましたが
同じエラーになってしまいます。
Excelのバージョンが間違っていました。
大変申し訳ございません。
Excel2013 でなく Excel2016の誤りでした。
度々申し訳ございませんが再度ご教授お願いします。
宜しくお願い致します。
(あずき) 2020/05/20(水) 13:25
ちなみに、「Uke1Book」には何がはいってるんですか?
また、それぞれの変数をちゃんと取得するように改造してから↓を実行するとイミディエイトにどう出力されますか?
Sub 実験() '〜中略~ Debug.Print "「Uke1Book」の中身は " & Uke1Book Debug.Print "「UkeCnt」の中身は " & UkeCnt Debug.Print "「Uke1(UkeCnt)」は " & Uke1(UkeCnt) End Sub
(もこな2 ) 2020/05/20(水) 13:54
ブックのシート名を全て確認したところシート名にカタカナの半角に全角が1文字
混在していました。
修正して実行したところ正常に実行されました。
確認がきちんと出来ていなくて皆さんに余分な時間を取らせてしまい
大変申し訳ございません。
エラー発生の時は一つ一つ確認するようにします。
大変有難うございました。
(あずき) 2020/05/20(水) 14:25
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.