【发布时间】:2016-12-17 02:17:30
【问题描述】:
试图用一些 VBA 代码帮助我们的 Project 2013 用户,但我们似乎无法找到答案来查找是否使用 VBA 在我们的 PWA 服务器上签出 Project 2013 文件。他们基本上将项目列表设置为单个项目文件中的任务,并且 VBA 代码循环通过任务列表来运行 FileOpenEx,进行一些更改,然后关闭它。但是,需要能够在对列表中的每个项目运行 FileOpenEx 之前检查项目文件是否已签出。以下是我想要做的事情的一个示例,它并没有完全达到我想要的效果。
SelectBeginning
While ActiveCell.CellColor <> pjBlack
fname = "<>\" & ActiveCell.Task.Name
justname = ActiveCell.Task.Name
On Error Resume Next
If Application.Projects.CanCheckOut(fname) Then '<--This does not work correctly, not checking Enterprise Projects?
FileOpenEx Name:=fname, ReadOnly=false
'Do Some stuff
FileCloseEx Save:=pjSave, CheckIn:=True
FileSave
Else
MsgBox (justname & " can not be checked out")
End If
SelectCell Row:=1
Wend
如果有人有更好的解决方案、简单的检查方法或其他解决方法来确定企业项目是否通过 VBA 代码签出,请告诉我。谢谢!
【问题讨论】:
-
是您要查看的项目是否已在主项目中签出?
-
不,这些不是主项目的一部分。我们目前有主项目被禁止。
-
@大卫。我认为微软的这个 sn-p 可能会有所帮助:msdn.microsoft.com/en-us/library/office/jj820423.aspx。基本上,您想从 Projects 集合中选择项目,并检查它的项目类型(企业与非企业)。然后有一些Project级别的签入和签出方法。
-
感谢 Ryan,我之前尝试过这段代码,它只会检查当前打开的项目,而不会查看企业项目。
-
通过项目集合中的每个项目迭代返回的 Project.Type 是什么?
标签: vba ms-project