重新初始化“ThisWorkbook.Path”

时间:2009-07-17 05:21:28

标签: excel file vba function excel-vba

首先,感谢那些给我建议使用“ThisWorkbook.Path”的人。它就像一个魅力。

但是,我的代码遍历七(7)个工作簿,当使用“ThisWorkbook.Path”时,我无法重新初始化“This.Workbook”。让我详细说明一下。

这是Macro所在的工作簿:

Workbooks("Financial_Aggregator_v3.xls").Activate

这是代码添加选项卡并执行小计的第一个工作簿。基本上,ThisWorkbook.Path在这里工作:

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

在完成“Mechanical”所需的操作之后,我有以下代码片段,它永远不会变为TRUE:

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

该函数的代码适用于“Mechanical”表:

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

仅供参考,我试图将所有不同的工作簿分解为不同的Sub(),但这不起作用。我还三重检查了工作簿的名称。

提前致谢。

1 个答案:

答案 0 :(得分:3)

Excel.VBA中的“ThisWorkbook”有点像“Me”,因为它只适用于实际持有执行“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