2017-02-15 8 views
2

Я разработчик VB, работающий с файлами MPP в первый раз.Отступывание задач в файле mpp (файл проекта Ms) в vba (файл excel to mpp)

Мой код считывает данные из Excel и успешно записывает в файл mpp для некоторого набора столбцов и строк.

1) Как выбрать одну ячейки в файле MPP, потому что у меня есть сценарий, где я сравниваю с следующей ячейкой строк и сделать некоторые операции

2) Почему мы не можем быть настроенными столбцы в файле MPP (например, имя компьютера, имя диска и т.д.) его дает ошибку

3) как отступа клетки держать одну клетку, как мастер других под ним, и он должен пройти через петлю

код для удаления всех задач

For Each oSubTasks In oTasks 
    If Not oSubTasks Is Nothing Then 
     oSubTasks.Delete 
    End If 
Next oSubTasks 

код, чтобы получить значение столбца

For Each oSubTasks In oTasks 
'if the frist row is blank 
    If oSubTasks.GetField(FieldNameToFieldConstant("Duration")) = "" Then Exit For 
    If oSubTasks.GetField(FieldNameToFieldConstant("Duration")) <> "" Then 
     Mpplastrow = Mpplastrow + 1 
    End If 
Next oSubTasks 

код для заказной колонки получает ошибку

If oSubTasks.GetField(FieldNameToFieldConstant("computer name")) = sh1.Cells(rw, primecol).Value Then 
' oTask.SetField FieldID:=oApp.FieldNameToFieldConstant("computer name"), Value:=sh1.Cells(rw, primecol).Value 
'Else 
' oTask.SetField FieldID:=oApp.FieldNameToFieldConstant("computer name"), Value:=sh1.Cells(rw, primecol).Value 
'End If 
+0

Вы прочитали мой ответ и код ниже? Вы имели в виду что-то подобное? –

ответ

0

Чтобы прочитать отступ уровня каждой задачу MSP, и быть в состоянии Отступ внутри (или снаружи), попробуйте что-то вроде кода ниже:

Option Explicit 

Sub IndentTasks() 

Dim Tsk As Task 

For Each Tsk In ThisProject.Tasks    
    Select Case Tsk.OutlineLevel '<-- read the current taks Outline Level 
     Case 1 
      If Tsk.ID <> 1 Then 
       Tsk.OutlineIndent '<-- indent inside (to the right) 
      End If 

     Case Is > 6 '<-- don;t want your Project to be too indented inside 
      Tsk.OutlineOutdent '<-- indent outside (to the left) 

    End Select 
Next Tsk 

End Sub 
+0

Спасибо, Шай Радо, это было очень полезно. –

+0

, чтобы добавить, как я могу получить имена столбцов и значение полей столбцов. –