除“查看宏”菜单外,MS Project Macro 不会执行

除“查看宏”菜单外,MS Project Macro 不会执行

所以我有一个没有错误的宏。如果我转到 Visual Basic 并按 F5 或 F8,它将运行。如果我转到“查看宏”菜单并选择它,它将运行。

但是,如果我设置键盘快捷键,将其放在快速访问工具栏中,或将其添加到功能区中,这些都不起作用。

这是 MS Project 2010 Professional。版本信息系统信息。

附加信息:我从头创建了一个新宏,它有完全相同的症状。这似乎是程序的问题,而不是宏本身的问题。

答案1

导出模块,在 Notepad 或 Notepad++ 中打开它。滚动到宏程序的定义;Attribute宏主体的前几行应该有一两条指令:

Public Sub DoSomething()
Attribute DoSomething.VB_Description = "Does something"
Attribute DoSomething.VB_ProcData.VB_Invoke_Func = "A\n14"
    MsgBox "Hello"
End Sub

这里\n14代表Ctrl+Shift组合键,因此该宏DoSomething被分配给Ctrl++ ShiftA

如果VB_ProcData不存在该属性,请添加它。请注意,成员属性的语法要求成员名称限定属性(即过程名称为DoSomething,因此属性指令为DoSomething.VB_ProcData...)。

然后保存文件,返回到您的 VBA 项目,删除模块,并导入修改后的文件。

答案2

事实证明,这是因为我的 Windows 配置文件与此处的公司网络配置存在问题。在项目中,我的全局模板显示了 2 个副本,一个是“Global.MPT”,另一个是“Global (+ 非缓存企业)。将我的宏移动到第二个副本中解决了这个问题。

答案3

在 MSP Pro 2016 中向快速链接添加宏时发现了这个问题。

该宏被记录下来而不是直接编码,并且创建一个新的宏(例如DoSomething()Mathieu 的答案中的示例)有效。

将宏代码复制到记事本中,删除原始宏并通过粘贴或键入文本来创建新版本。

Sub Baselining()

    baselineSave All:=True, Copy:=0, Into:=0
    baselineSave All:=True, Copy:=0, Into:=14

End Sub

相关内容