使用dynamic文件path位置从另一个工作簿运行Excelmacros

所以我在Worksheet1中有一个macros打开另一个文件(Worksheet2),然后复制并粘贴特定的单元格并从Worksheet1传输到Worksheet2。

一旦Worksheet1的macros完成将Worksheet1中的单元格粘贴到Worksheet2,Worksheet1中的同一个macros将触发另一个macros(embedded在Worksheet2中)运行。

我有打开Worksheet2,从工作表1复制和粘贴到工作表2的代码工作,唯一的问题是Worksheet1中的macros触发运行embeddedWorksheet2中的macros。

Sub FCY() ' ' Macro3 Macro ' Dim MainFile As Workbook Dim jnl As Workbook Dim RF As Workbook Dim FileExt As String Set MainFile = ActiveWorkbook 'FileExt - Cells where is Worksheet2 being saved (example: Worksheet2.xls) FileExt = Sheets("REF Data").Cells(25, 7).Value & "." & Cells(25, 9).Value 'Set jnl - a command to open the Worksheet2 by using the "FileExt" plus the File Location 'which is entered in Cells (22,7) or Range("G22") (example - C:\Documents\Worksheet2.xls) Set jnl = Workbooks.Open(Worksheets("REF Data").Cells(22, 7).Value & "\" & FileExt) 'Selecting the specified cells to copy and paste from Worksheet1 to Worksheet2 MainFile.Activate Sheets("FCY").Select Range("B11:BJ11").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy jnl.Activate Range("B11:BJ11").Select ActiveCell.PasteSpecial xlPasteValues 'Command which runs another Macro embedded in Worksheet2 'Incorrect code to run the macro in Worksheet2 Application.Run (Worksheets("REF Data").Cells(22, 7).Value & "\" & FileExt & SaveAstab) ' End Sub 

我已经知道这可以用这个代码来实现:

 Application.Run ("'C:\Documents\Worksheet2.xls'!SaveAstab") 

注意: SaveAstab是Worksheet2中macros的名称

但是,如果您注意到上面的文件位置+文件名+扩展名是由用户input特定的单元格。 我的意思是,文件位置+文件名+扩展名的细节是dynamic的,由用户input。

我的问题是,如果我调用我分配的文件位置+文件名+扩展名的单元格,我有一个错误(运行时错误9)。

 'Incorrect code to run the macro in Worksheet2 Application.Run (Worksheets("REF Data").Cells(22, 7).Value & "\" & FileExt & SaveAstab) 

谁能分享他们在这个问题上的专业知识? 非常感谢你

试试…

 Dim runCommand as String runCommand = Chr(39) & Worksheets("REF Data").Cells(22, 7).Value & "\" & FileExt & Chr(39) & "!SaveAstab" Debug.print runCommand Application.Run(runCommand) 

并给我输出uf debug.print