vba命令,用于检查MS Project plan是否已在服务器中签出
我正在寻找一个vba命令,它首先检查MS Project plan是否在服务器中签出。如果未签出,则触发保存在MS Project计划中的宏;如果任何其他用户已签出,则跳过该特定MS Proj计划并移动到下一个计划。 我正在使用以下命令,但未得到验证: 如果objProject.IsCheckedOut(docCheckOut)=False,则 objProject.ActiveProject.CheckoutProject 其中,docCheckOut是MS项目计划 完整代码:vba命令,用于检查MS Project plan是否已在服务器中签出,vba,ms-project,Vba,Ms Project,我正在寻找一个vba命令,它首先检查MS Project plan是否在服务器中签出。如果未签出,则触发保存在MS Project计划中的宏;如果任何其他用户已签出,则跳过该特定MS Proj计划并移动到下一个计划。 我正在使用以下命令,但未得到验证: 如果objProject.IsCheckedOut(docCheckOut)=False,则 objProject.ActiveProject.CheckoutProject 其中,docCheckOut是MS项目计划 完整代码: Sub Tes
Sub Test()
Dim mppName, mppFiles(0 To 2), strMacroName(0 To 3) As String
Dim fileCounter, macroCounter As Integer
Dim objProject As Object
Dim docCheckOut As String
mppFiles(0) = "CMD_mpp1"
mppFiles(1) = "CMD_mpp2"
mppFiles(2) = "CMD_mpp3"
strMacroName(0) = "CMD_Macro1"
strMacroName(1) = "CMD_Macro2"
strMacroName(2) = "CMD_Macro3"
strMacroName(3) = "CMD_Macro4"
Set objProject = CreateObject("MSProject.Application")
Application.DisplayAlerts = False
objProject.DisplayAlerts = False
'
For fileCounter = 0 To 2
docCheckOut = mppFiles(fileCounter)
On Error GoTo L1
objProject.FileOpenEx Name:="<>\" & docCheckOut, ReadOnly:=True, DoNotLoadFromEnterprise:=False
objProject.Application.Visible = True
If objProject.IsCheckedOut(docCheckOut) = False Then
objProject.ActiveProject.CheckoutProject
If objProject.IsCheckedOut(objProject.ActiveProject.Name) Then
MsgBox "checked out"
For macroCounter = 0 To 3
objProject.Application.Macro strMacroName(macroCounter)
objProject.Application.FileSave
objProject.Application.Publish
Next macroCounter
Else
MsgBox "Not checked out"
GoTo L1
End If
L1: Next fileCounter
Application.DisplayAlerts = True
objProject.DisplayAlerts = True
End Sub
子测试()
Dim mppName、mppFiles(0到2)、strMacroName(0到3)作为字符串
Dim fileCounter,宏计数器为整数
作为对象的Dim OBJ项目
将docCheckOut设置为字符串
mppFiles(0)=“CMD\u mpp1”
mppFiles(1)=“CMD_mpp2”
mppFiles(2)=“CMD_mpp3”
strMacroName(0)=“CMD_Macro1”
strMacroName(1)=“CMD_Macro2”
strMacroName(2)=“CMD_Macro3”
strMacroName(3)=“CMD_Macro4”
设置objProject=CreateObject(“MSProject.Application”)
Application.DisplayAlerts=False
objProject.DisplayAlerts=False
'
对于fileCounter=0到2
docCheckOut=mppFiles(文件计数器)
关于错误转到L1
objProject.FileOpenEx名称:=“\”&docCheckOut,只读:=True,DoNotLoadFromEnterprise:=False
objProject.Application.Visible=True
如果objProject.IsCheckedOut(docCheckOut)=False,则
objProject.ActiveProject.CheckoutProject
如果objProject.IsCheckedOut(objProject.ActiveProject.Name),那么
MsgBox“已签出”
对于宏计数器=0到3
objProject.Application.Macro strMacroName(宏计数器)
objProject.Application.FileSave
objProject.Application.Publish
下一个宏计数器
其他的
MsgBox“未签出”
转到L1
如果结束
L1:下一个文件计数器
Application.DisplayAlerts=True
objProject.DisplayAlerts=True
端接头
如果有其他命令,有人可以建议吗?相关:非常感谢Rachel。它解决了我的问题。相关:非常感谢瑞秋。它解决了我的问题。