這似乎是這樣一個簡單的請求,但我似乎無法找到任何答案在線。 我有兩個打開的工作簿(可以說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中的代碼沒有明確說明它應該在哪個工作簿上運行。 –