0

ユーザーがシートを設定してから特定の領域を更新できるように、シートにパラメーター セクションを設定しました。パラメータのうちの 2 つは、「ブラック ボックス」計算モジュールである外部ファイルです。

これらは完全なパスで設定され、シートのセルに保存されます。

計算手順を開始すると、次のコードがロードされます

 'Set file name and location.
NameOfFile = ActiveWorkbook.Worksheets("Parameters").Cells(8, 2).Value
PathToFile = Left$(NameOfFile, InStrRev(NameOfFile, "\") - 1)
FileNameNoPath = Mid$(NameOfFile, InStrRev(NameOfFile, "\") + 1)
NameOfFile = FileNameNoPath
completefilepath = PathToFile & "\" & NameOfFile
 'set the target workbook to a variable.  If an error is
 'generated, then the workbook is not open, so open it
On Error Resume Next
Set wbTarget = Workbooks(NameOfFile)
  If Err.Number <> 0 Then
     'Open the workbook
    Err.Clear
    Set wbTarget = Workbooks.Open(NameOfFile, UpdateLinks:=False)
    CloseIt = True
End If

 'Check and make sure workbook was opened
If Err.Number = 1004 Then
    MsgBox "Sorry, but the file you specified does not exist!" _
    & vbNewLine & NameOfFile
    Exit Sub
End If

私が抱えている問題は、コードを実行すると、ファイルが見つからないと表示されることです。私が行った場合は、ファイルを再選択してパラメーターシートのフィールドをリセットします (これを行うためのファイルダイアログのセットアップがあります)。コードは完全に機能し、ファイルが開きます。基本的に、これは、シートがシャットダウンされるたびに、計算が実行される前にファイルが再選択されることを意味します。何が原因か知っている人はいますか?

4

1 に答える 1

2

あなたのコード行で

Set wbTarget = Workbooks.Open(NameOfFile, UpdateLinks:=False)

ファイル名のみを指定しており、パスは指定していません。これは、意図したパスではない可能性がある現在のパスからファイルを開こうとします。OpenFileダイアログを 使用してファイルを参照すると、現在のパスが更新され、コードが機能します。

あなたはおそらく意味した

Set wbTarget = Workbooks.Open(completefilepath , UpdateLinks:=False)
于 2012-09-25T09:02:20.283 に答える