Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Excel宏中作为变量的位置路径_Vba_Excel - Fatal编程技术网

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

Vba Excel宏中作为变量的位置路径,vba,excel,Vba,Excel,我想从宏中打开excel文件Project.xlsx。所以我在宏中使用这个 Workbooks.Open ("C:\Users\Project.xlsx") 但是,Project.xlsx的位置可能是随机的。 因此,我计划创建另一个名为master.xlsx的工作簿,其中包含project.xlsx的默认位置。 这是我的master.xlsx,单元格A2包含Project.xlsx的位置。 现在有谁能帮我用宏写代码吗?我想会是这样 Workbooks.Open (Master.xlsx!Sh

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

Workbooks.Open ("C:\Users\Project.xlsx")
但是,Project.xlsx的位置可能是随机的。 因此,我计划创建另一个名为master.xlsx的工作簿,其中包含project.xlsx的默认位置。 这是我的master.xlsx,单元格A2包含Project.xlsx的位置。

现在有谁能帮我用宏写代码吗?我想会是这样

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

我相信语法是
“[WorkbookName]WorksheetName”!手机地址

在您的情况下,
Set oWB=Workbooks.Open(范围(“[Master.xlsx]Sheet1”!A2”).Value和“Project.xlsx”)


但我想知道你把宏存储在哪里?因为“无”表示启用了宏的Excel文件。

您可以使用基本限定条件让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

看起来应该是这样的。没用吗?没用。宏在另一个excel文件中。在“raspi.xlsm”中也是如此。我想从raspi.xlsm中的宏打开project.xlsx。但是project.xlsx的位置在master.xlsx中。我尝试了您的方法,但出现了以下错误:错误“1004”方法“对象范围”\u Global'@RaspiSurya抱歉,我将
放在了错误的位置。