【发布时间】:2013-09-08 16:22:05
【问题描述】:
假设您有两个工作簿,一个名为“MyWorkbook”,另一个名为“PatchMyWorkbook”。两个工作簿都在保存时打开。 “PatchMyWorkbook”有一个宏来添加一个按钮并将“MyWorkbook”的现有宏分配给“MyWorkbook” “MyWorkbook”中的现有宏称为“PrintPage”
Windows(“MyWorkbook”).Activate
Sheets("Sheet1").Activate
ActiveSheet.Buttons.Add(665.25, 43.5, 89.25, 45).Select
Selection.OnAction = "PrintPage"
这不会在“PatchMyWorkbook”代码执行时导致错误,但新添加的按钮宏将指向“'PatchMyWorkbook'!PrintPage”,而不仅仅是“MyWorkbook”的“PrintPage”
问题:如何为跨工作簿的宏按钮设置“OnAction”,以便宏指向当前工作簿而不是创建宏的工作簿?
【问题讨论】:
-
我试过 MyWbk.Sheets("Sheet1").Shapes("ButtonName").OnAction = "'" & myWbk.Name & "'" & "!" &“PrintPage”,但它不起作用。它仍然引用运行宏的工作簿。