[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『実行時エラー'9'』(MARU)
複数のExcelファイルを取り込んで、データを一つにまとめています。 そこで、下記の箇所で Workbooks(FILENAME2).Close SaveChanges:=False 実行時エラー'9'インデックスが有効にありません。と返ってきます。 原因を追求できておらず、エラーが消えません。 どこが悪いのか教えていただけませんでしょうか? よろしくお願いします。
Windows("管理R2.xls").Activate
dr = Worksheets("コントロール").Cells(4, 5).Value
ChDir dr
Set fs = Application.FileSearch
With fs
.LookIn = dr
.FileName = "*.xls"
If .Execute > 0 Then
MsgBox (.FoundFiles.Count & " 個のファイル")
For i = 1 To .FoundFiles.Count
Workbooks.Open FileName:=.FoundFiles(i)
filename1 = .FoundFiles(i)
FILENAME2 = Mid(filename1, Len(dr) + 2, Len(filename1) - Len(dr))
Sheets("出力").Select
Range("DATA").Select
Range("DATA").Activate
Selection.Copy
Windows("管理R2.xls").Activate
Sheets("入力").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Workbooks(FILENAME2).Close SaveChanges:=False
Next i
Else
MsgBox "条件を満たすファイルはありません。"
End If
End With
Rowpoint1 = Worksheets("CTL").Cells(6, 5).Value
Clmpoint1 = Worksheets("CTL").Cells(6, 6).Value
ActiveWorkbook.Names.Add Name:="DataB", RefersToR1C1:= _
"=DataB!R1C1:R" & Rowpoint1 & "C" & Clmpoint1
ActiveWorkbook.Save
Closeすべきブック名(インデックス)が見当たらないというエラーです。 Workbooks.Open FileName:=.FoundFiles(i)でループして開くブックを FILENAME2という名前にして閉じる、という動作が希望なら、 閉じる前に「名前をつけて保存」が必要。 (みやほりん)
ありがとうございます。 >FILENAME2という名前にして閉じる、という動作が希望なら、 特にこの動作には、こだわりません。 開いた複数のファイルを全て閉じれればいいのですが どこのタイミングで挿入すればいいのでしょうか? 名前は既についているので、保存せずとじればよいです。 (MARU)
すみません、検証まではしていないもので。
ブックだけを特定できればよいのですね。開く時にいったんオブジェクト変数に
取得してみては?
dim myWb as Workbook
(中略)
set myWb Workbooks.Open(FileName:=.FoundFiles(i))
(中略)
mywb.close
こんな感じ。以下はブック名の文字列を取得するためのものだろうから不要かな?
filename1 = .FoundFiles(i)
FILENAME2 = Mid(filename1, Len(dr) + 2, Len(filename1) - Len(dr))
みやほりん
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.