答案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++ Shift。A
如果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