[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『「インデックスが有効範囲にありません」のエラーの原因』(あき)
下記のVBAを作成したのですが、「インデックスが有効範囲にありません」とエラーが出ます。
ワークシートの数だけ繰り返すの部分を付け加えたのですが、その部分でエラーとなります。
原因を教えてください。
Sub データコピー()
Dim fPath As String Dim fname As String Dim lngRow As Long Dim fcnt, scnt As Long Dim i, j As Long
With ActiveSheet fPath = .Range("A1").Value & "\" fcnt = Application.WorksheetFunction.CountA(.Range("A:A")) End With
Application.EnableEvents = False Application.ScreenUpdating = False For f = 5 To 3 + fcnt fname = ThisWorkbook.Sheets("BOM読み込み").Range("A" & f).Value
Workbooks.Open (fPath & fname) scnt = Workbooks(fname).Worksheets.Count For j = 1 To scnt With Workbooks(fname).Sheets(j) 'デバックするとこの部分がエラーとなる .Range("F4", .Cells(.Rows.Count, "B").End(xlUp)).Copy End With
With ThisWorkbook.Sheets("BOM読み込み") lngRow = .Range("F" & .Rows.Count).End(xlUp).Row + 1 .Range("F" & lngRow).PasteSpecial Paste:=xlPasteValues End With ActiveWorkbook.Application.CutCopyMode = False ActiveWorkbook.Close False Next j Next f
For i = Cells(Rows.Count, "F").End(xlUp).Row To 2 Step -1 If Cells(i, "I") = "DWG NAME" Then Cells(i, "F").Value = Cells(i, "J").Value End If
Next i
Application.EnableEvents = True Application.ScreenUpdating = True End Sub
< 使用 Excel:Excel2010、使用 OS:Windows7 >
一見良さそうですけれど、エラーが出たときの fname と j は何が入っているでしょうか。 その時開いているファイルのシート数と、scnt は一致しているでしょうか。
関係ありませんが、 Dim fcnt, scnt As Long は Dim fcnt As Long, scnt As Long のつもりで書かれたと思いますので、蛇足ながらのコメントです。 (Mook) 2015/05/01(金) 11:43
どのようなブックがあるのかが分からないので解決するかは不明。 (たぶんこれでは解決しそうにはないが、念のため)
>With Workbooks(fname).Sheets(j) 'デバックするとこの部分がエラーとなる を >With Workbooks(fname).Worksheets(j) 'デバックするとこの部分がエラーとなる ではどうだろうか?
(ねむねむ) 2015/05/01(金) 11:49
あっ、わかりました。 ActiveWorkbook.Close False が Next j の前にある! (Mook) 2015/05/01(金) 11:52
おお、それだ。 (ねむねむ) 2015/05/01(金) 11:54
エラーはMookさん指摘の部分でしょうけど、コードにしっかりと(正しく)インデントをつけておけば この間違いは、視覚的に、もっと早く(自分自身で)わかったと思います。
また、コードそのものでいえば Mookさん指摘の変数宣言の他に、几帳面にシート修飾しているところと ActiveSeet.なんとか や シート修飾なしの Cells(なんとか) が混在。 また、ブックについても几帳面に、ブック修飾しているところと ActiveWorkbookが混在。
徹底的にブック修飾、シート修飾をしておかれるべきだと思いますね。複数ブックを対象にする処理なんですから。
(β) 2015/05/01(金) 11:56
(あき) 2015/05/01(金) 12:11
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.