2009-07-17 9 views
1

まず、 "ThisWorkbook.Path"の使用に関する提案をくれたあなたのおかげです。それは魅力のように働いた。"ThisWorkbook.Path"の再初期化

しかし、私のコードは7つのワークブックを通っており、 "ThisWorkbook.Path"を使うと "This.Workbook"を再初期化できません。私は詳しく説明します。

Workbooks("Financial_Aggregator_v3.xls").Activate 

これはコードタブを追加し、小計を行う最初のブックである:

これはマクロ存在ブックです。基本的には、ThisWorkbook.Pathはここに動作します:

Workbooks("Chapter_7-10_Mechanical.xls").Activate 

私がTRUE判明したことがない、次のコードスニペット、持っている「機械的」で行わ必要なものをやった後:

Workbooks("Financial_Aggregator_v3.xls").Activate 
If FileThere(ThisWorkbook.Path & Application.PathSeparator & "Chapter_7-90_ECS_1_LLC.xls") Then 

関数のコードを、「機械」シートのために働くです:

FYI
Function FileThere(FileName As String) As Boolean 
    FileThere = (Dir(FileName) > "") 
End Function 

、I)は、(異なるサブに別のワークブックのすべてを破るしようとしたが、それは動作しませんでした。私はまた、ワークブックの名前を三重にチェックしました。

ありがとうございます。

+0

を私の提案は、あなたの質問にお答えしましたか?これは解決されましたか? – RBarryYoung

答えて

3

Excel.VBAの "ThisWorkbook"は、 "ThisWorkbook"を実行しているVBAコードを実際に保持しているブック(.XLS)にのみ適用される、「Me」のようなものです。必要なのは、ワークブック・オブジェクトを使用して、テストまたは操作したい特定のワークブックを抽象化することです。

はこのような何か試してみてください:

Public Sub TestWB() 
    Dim CurrWB As Workbook 

    'To get a workbook into our object variable:' 
    Set CurrWB = Workbooks("Chapter_7-10_Mechanical.xls") 

    'To Change the .Path:' 
    CurrWB.SaveAs NewFileName, AddToMru:=True 

End Sub 
関連する問題