2009-07-17 352 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 

該函數的代碼,其作品爲「機械」表是:

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

僅供參考,我試圖打破所有的不同的工作簿爲不同的子(),但沒有奏效。我還重複檢查了工作簿的名稱。

在此先感謝。

+0

難道我的建議回答你的問題?這個問題解決了嗎? – RBarryYoung 2009-07-28 17:16:49

回答

3

Excel.VBA中的「ThisWorkbook」有點像「我」,因爲它只適用於實際上保存執行「ThisWorkbook」的VBA代碼的工作簿(.XLS)。您需要做的是使用Workbook對象來抽象您想要測試或操作的特定工作簿。

嘗試是這樣的:

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