这似乎是这样一个简单的请求,但我似乎无法找到任何答案在线。 我有两个打开的工作簿(可以说A和B)。我想要做的就是运行我在工作簿B中创建的一个宏,并通过工作簿A运行它(通过单击一个我已经分配了宏的形状),但运行在宏的工作簿B使宏运行在特定的工作簿
我为工作簿乙是创建的宏...
Sub HistoricalDataShift()
Dim ws As Worksheet
For Each ws In Sheets
ws.Activate'
Rows("18:1000").Select
Selection.Copy
Range("A19").Select
ActiveSheet.Paste
Rows("15:15").Select
Selection.Copy
Range("A18").Select
ActiveSheet.Paste
Next ws
End Sub
然后创建在工作簿乙具有第二宏...
Sub ApplicationRun()
Application.Run ("WorkbookB.xlsm!HistoricalDataShift")
End Sub
但是,每次我尝试宏一直运行在工作簿A。
如果我能得到一个援助之手,将不胜感激。
[从另一个工作簿上运行Excel宏(可能的重复http://stackoverflow.com/questions/2806065/运行excel宏从另一个工作簿) – Ralph
我相信这是一个重复的问题如下:http:// stackoverflow。com/questions/2806065/running-excel-macro-from-another-workbook请注意,您编写的宏不适用于其他工作簿,因为它缺少复制和粘贴时要使用的工作簿的明确引用。 – Ralph
@Ralph这不是重复的,因为Application.Run对OP来说工作得很好。 OP的问题在于工作簿B中的代码没有明确说明它应该在哪个工作簿上运行。 –