[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ファイル数を読み込んでいたのですが突然読めなくなった』(おさむ)
Dim fc As Long 'ファイル数
Dim fn As String 'ファイル名
fc = 0
fn = Dir("..\幼稚部\幼*.xls")
Do While fn <> ""
fc = fc + 1 fn = Dir() Loop
MsgBox "ファイル数は" & fc & "です。"
For x = 1 To fc Workbooks.Open ("..\幼稚部\幼" & CStr(x) & ".xls")
勤務日数 = 勤務日数 + Cells(gyou, 4).Value 年休日数 = 年休日数 + Cells(gyou, 5).Value 年休時間 = 年休時間 + Cells(gyou, 6).Value 勤務内実労働 = 勤務内実労働 + Cells(gyou, 7).Value 勤務外実労働 = 勤務外実労働 + Cells(gyou, 8).Value
Workbooks("幼" & CStr(x) & ".xls").Close SaveChanges:=False Next x
作成段階では順調に動いていたのですが、この作業を6回繰り返して、保存したらファイル数は0というMsgboxからのメッセージで、エラーもでず、マクロが終了します。
何が悪いのでしょうか?
変数の宣言はすべて正確に行っています。
エクセル2003です。
よろしくお願いします
パスを省略しているのでカレントディレクトリからの相対パスがずれているのではないでしょうか? 「..\幼稚部\幼」という2カ所の所をフルパスにしてみてはどうでしょうか? (momo)
一応、その他の所で気になった個所も・・・ >変数の宣言はすべて正確に行っています。 ですが >For x = 1 To fc の、xが宣言されていませんね。
あと >勤務日数 = 勤務日数 + Cells(gyou, 4).Value とかのCellsの親オブジェクトがわからないのでActiveなブックが変わると 思わぬエラーになる可能性があります。
For x = 1 To fc With Workbooks.Open("..\幼稚部\幼" & CStr(x) & ".xls") 勤務日数 = 勤務日数 + .ActiveSheet.Cells(gyou, 4).Value 年休日数 = 年休日数 + .ActiveSheet.Cells(gyou, 5).Value 年休時間 = 年休時間 + .ActiveSheet.Cells(gyou, 6).Value 勤務内実労働 = 勤務内実労働 + .ActiveSheet.Cells(gyou, 7).Value 勤務外実労働 = 勤務外実労働 + .ActiveSheet.Cells(gyou, 8).Value .Close SaveChanges:=False End With Next x
くらいにはしておいた方が良さそうですね。 (momo)
やはり、ファイル読み込みができていませんでした。
フルパスは持ち運び上無理なので、
ThisWorkbook.Path を使ってやったらうまく動きました。
ご迷惑をおかけしました。
(おさむ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.