假设您有两个工作簿,一个叫做“ 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”,以便宏将指向当前工作簿而不是指向创建宏的工作簿?
最佳答案
我认为.OnAction property
应该这样设置:
Selection.OnAction = myWbk.Name & "!PrintPage"
顺便说一下,您评论中的想法(在下面有所更改):
Selection.OnAction = "'" & myWbk.Name & "'" & "!" & "PrintPage"
也为我工作(Excel 2010)。