【发布时间】:2014-04-16 14:16:17
【问题描述】:
我已通过以下链接修改了不受联合国保护的 Excel VBA 项目的代码,以便与 Microsoft Project 一起使用。
Unprotect VBProject from VB code
但是在 MS Project 中总是有一个 Global.mpt(我的代码从这里运行)并且当下面的行执行时
projAp.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
它总是打开 Global.mpt 文件的 VBA 项目属性。
如何选择我的项目计划的 VBA 项目属性? 是否有一个 Windows API 函数可以让我选择屏幕主机中显示的第二个 VBA 项目。选择项目后启动 FindControl 命令应该启动它对应的 VBA 项目属性(手动尝试这个)。
【问题讨论】:
-
我不确定我是否理解,但我认为您需要遍历 VBProjects 以获取正确的引用,因为您可能将
projAp限定为 VBIDE.Project -
@mehow 我现在尝试了:
debug.Print projAp.ActiveProject.VBProject.VBE.VBProjects.Item(1).FileNameC:\Users\IBM_ADMIN\AppData\Roaming\Microsoft\MS Project\14\1033\Global.mpt @987654326 @ C:\Users\IBM_ADMIN\Desktop\Project Plan v2.46.mptprojAp.VBE.VBProjects.Item(2).VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute即使我在第一个 VBA 项目属性上方的代码 sn-p 中明确选择第二个 VBAProject,也只会再次打开.
标签: vba winapi ms-project