保存项目时需要运行代码

问题描述 投票:0回答:1

我已经在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中,我不知道该怎么做,因为它的工作方式不同。保存项目时,我只需要运行代码即可...

vba project ms-project microsoft-project-vba
1个回答
0
投票

MS Project事件的工作方式与在Excel中相同。尝试Project BeforeSave事件或Project Open事件。

© www.soinside.com 2019 - 2024. All rights reserved.