2015-10-29 69 views
0

是否有方法可以使用vb.net更改項目的持續時間?我試圖錄制一個宏,但一旦我運行它,它不會做我在記錄過程中所做的。它正在選擇一個不同的行/列。我也注意到該行有負值,我在這裏包括宏。如何更改MS Project上的數據

Sub Macro3() 
    SelectTaskField Row:=-3, Column:="Actual Start" 
    SelectTaskField Row:=4, Column:="Actual Duration" 
    SelectTaskField Row:=5, Column:="Actual Duration" 
    SelectTaskField Row:=-3, Column:="Start" 
    SelectTaskField Row:=-2, Column:="Finish" 
    SelectTaskField Row:=1, Column:="Name" 
    SelectTaskField Row:=-3, Column:="Actual Start" 
    SelectTaskField Row:=-4, Column:="Actual Start" 
    SelectTaskField Row:=4, Column:="Actual Start", Height:=1 
    SelectTaskField Row:=5, Column:="Actual Start", Height:=1 
    SelectTaskField Row:=3, Column:="Actual Start" 
    SelectTaskField Row:=-3, Column:="Duration" 
    SelectTaskField Row:=-4, Column:="Actual Start" 
    SelectTaskField Row:=-3, Column:="Duration" 
End Sub 

謝謝!

+0

VB.NET標籤:'不使用這個標記爲VB6,VBA,或VBScript questions.' – Plutonix

回答

0

我設法改變使用宏的持續時間,但有沒有辦法以更快的方式完成?我讀過每個任務,但是有沒有辦法讓所有持續時間乘以2以更快的方式?

Public Sub toggleMissingBaseline() 
    On Error GoTo ErrorHandler 

    Dim tsks As Tasks 
    Dim t As Task 
    Dim rgbColor As Long 

    Set tsks = ActiveProject.Tasks 
    OutlineShowSubTasks 
    For Each t In tsks 
    OutlineShowSubTasks 
    SelectTaskField Row:=t.ID, Column:="Duration", RowRelative:=False 
    If (Not t Is Nothing) And (Not t.Summary) Then 
     t.Duration = t.Duration * 2 
    End If 
    Next t 
End Sub 
+0

是,刪除了'OutlineShowSubTasks'和'SelectTaskField'方法 - 這些通過循環時,不需要'任務'集合。您也可以關閉計算來加快速度。 –