下面的代码有效
Sub RunMacrosInWorkbook2()
Dim aRng As String, Sname1 As String
'Cell A1 contains the name of the Workbook 2 to open
Sname1 = Sheets("SelectPick3Games").Range("Q30").Value
'Open Workbook 2
Workbooks.Open (Sname1)
Sheets("Dashboard").Select
'run 1st macro in workbook 2
Application.Run "NewJersey.xlsm!ClearPreviousResults1"
'run 2nd macro in workbook 2
Application.Run "NewJersey.xlsm!CopyStringsData1"
'Save and Close Workbook 2
ActiveWorkbook.Close True
Windows("Pick3Stats.xlsm").Activate
Sheets("SelectPick3Games").Select
Range("Q28").Select
End Sub
如果我用 Sname1 替换 NewJersey.xlsm,如何获得以下代码行 例如下面的代码不起作用
'运行工作簿 2 中的第一个宏 应用程序.运行“Sname1!ClearPreviousResults1”
'运行工作簿 2 中的第二个宏 应用程序.运行“Sname1!CopyStringsData1”
Sname1 是单元格 Q30 中的工作簿名称 单元格 Q30 = NewJersey.xlsm
我在 Application.Run 中尝试了不同的变体,但没有成功。
Q30 单元格总共使用了 42 个工作簿
提前谢谢您!!
我尝试了不同的代码变体,但不断收到相同的错误。 将在第二个工作簿中运行代码的 Application.Run 的正确语法。
通常,您可以从变量和文字文本构建(连接)所需的字符串。换句话说,您不能只将 sname1 放入字符串中,如
"abcSNAME1def"
所示,它必须是从变量创建的字符串:"abc" & SNAME1 & "def"
所以在你的情况下,这是固定的代码:
Dim command as string
command = sname1 & "!ClearPreviousResults1"
Application.Run command