我已经在Excel中使用Workbook_BeforSave对此代码进行了编码,并且可以工作,但是在Project中,我不知道该怎么做,因为它的工作方式不同。保存项目时,我只需要运行代码即可。
Private Sub Workbook_Open()
Dim PtjR As Integer
Dim PtjP As Integer
Dim FechaRI As Date
Dim FechaRF As Variant
Dim FechaPI As Date
Dim FechaPF As Date
Dim ListaT As String
Dim ListaTT As String
Dim t As Task
For Each t In ActiveProject.Tasks
If t.Text1 = "Subtarea" Then
FechaPI = DateValue(t.Start)
FechaPF = DateValue(t.Finish)
PtjR = t.PercentComplete
PtjP = Round((DateValue(Now) - FechaPI) / (FechaPF - FechaPI), 2) * 100
If PtjP >= 100 Then
PtjP = 100
ElseIf PtjP < 0 Then
PtjP = 0
Else
PtjP = Round((DateValue(Now) - FechaPI) / (FechaPF - FechaPI), 2) * 100
End If
If PtjR < PtjP Then
ListaT = ListaT & vbNewLine & vbNewLine & "La tarea " & t.Name & " se encuentra en DELATE, lleva " & PtjR & "% y debería llevar" & " " & PtjP & "%."
If FechaPF - DateValue(Now) < 0 Then
ListaT = ListaT & ". Esta tarea debió terminar hace " & -(FechaPF - DateValue(Now)) & " días."
ElseIf FechaPF - DateValue(Now) <= 7 Then
ListaT = ListaT & ". Esta tarea termina en " & FechaPF - DateValue(Now) & " días."
End If
End If
Else
End If
Next t
MsgBox ListaT, vbCritical, "Advertencia"
End Sub
我已经在Excel中使用Workbook_BeforSave对此代码进行了编码,并且可以工作,但是在Project中,我不知道该怎么做,因为它的工作方式不同。保存项目时,我只需要运行代码即可...
MS Project事件的工作方式与在Excel中相同。尝试Project BeforeSave事件或Project Open事件。