位置路径作为Excel宏中的变量

时间:2017-10-25 02:32:21

标签: vba excel-vba excel

我想从宏打开excel文件Project.xlsx。所以我在我的宏中使用它。

Workbooks.Open ("C:\Users\Project.xlsx")

但是,Project.xlsx的位置可能是随机的。 所以我打算创建另一个名为master.xlsx的工作簿,其中包含project.xlsx的默认位置。 这是我的master.xlsx,单元格A2包含Project.xlsx的位置。 enter image description here

有人可以帮我解决如何在宏中编写代码吗?我猜它会像

Workbooks.Open (Master.xlsx!Sheet1!A2 & "Project.xlsx")

2 个答案:

答案 0 :(得分:1)

您可以使用基本资格让VBA确切知道它可以找到主工作簿的位置。

此过程假定Master.xlsx工作簿未打开。而且你必须指定它的路径。

Sub tmp()
    Dim master_wb As Workbook, project_wb As Workbook

    Set master_wb = Workbooks.Open(path_to_your_master_workbook & "\Master.xlsx")

    Set project_wb = Workbooks.Open( _
        master_wb.Sheets("Sheet1").Range("A2").Value & "Project.xlsx")

    master_wb.Close
End Sub

答案 1 :(得分:0)

我认为语法为'[WorkbookName]WorksheetName'!CellAddress

在您的情况下,Set oWB = Workbooks.Open(Range("'[Master.xlsx]Sheet1'!A2").Value & "Project.xlsx")

但我想知道你在哪里存储宏?因为没有人指出启用宏的Excel文件。