2015-01-21 4 views
1

VBA를 사용하여 Excel 시트에서 현재 MS-Project에서 프로젝트를 여는 중입니다. 또한 작업, 날짜, 기간 및 몇 가지 추가 데이터를 추가하고 있습니다.VBA - Excel에서 MS 프로젝트에 작업 추가

제 문제는 새 작업을 추가 할 때 작업의 기본 시작 시간이 프로젝트 (오전 7:00)에서 정의 된 시간이 아니며 00:00입니다.

'Collect data 
strValue = Worksheets("Display").Range("B" & i) 
strStartDate = Worksheets("Display").Range("G" & i) 
strEndDate = Worksheets("Display").Range("G" & i) 
Strresource = Worksheets("Display").Range("C" & i) 
DurTim = CDec(Worksheets("Display").Range("E" & i)) 
ActDurTim = CDec(Worksheets("Display").Range("F" & i)) 

'Define project defaults 
newproj.DefaultStartTime = "7:00" 
newproj.DefaultFinishTime = "16:00" 
newproj.HoursPerDay = "7" 

'Enter data to task 
newproj.Tasks.Add (strValue) 
'Check for milestone 
If Worksheets("Display").Range("H" & i) = "Y" Then 
    newproj.Tasks(i - 6).Milestone = False 
End If 
newproj.Tasks(i - 6).Start = strStartDate 
newproj.Tasks(i - 6).Duration = DurTim & " hours" 
newproj.Tasks(i - 6).ActualDuration = ActDurTim & "hours" 
If i <> 7 Then 
    newproj.Tasks(i - 6).Predecessors = newproj.Tasks(i - 6 - 1) 
End If 
If Not ExistsInCollection(newproj.Resources, Strresource) Then _ 
newproj.Resources.Add.Name = Strresource 
newproj.Tasks(i - 6).ResourceNames = Strresource 

내가 작업 및 솔루션하지만 행운을 위해 프로젝트 자체의 MS-프로젝트 객체에보고 시도 : 여기 내가 사용하고있는 코드입니다. 도움을 주시면 감사하겠습니다.

답변

0

코드를 통해 작업의 시작 속성을 설정하면 계산 된 시작 필드를 구동하기 위해 실제로 제한 날짜 및 제한 유형을 설정하고 있습니다. 그리고 제공된 날짜에는 명시 적으로 (예 : 1/26/2015 3:25 PM) 또는 암시 적으로 (예 : 1/26/2015 12:00 AM) 시간 구성 요소가 있습니다.

반면에 사용자 인터페이스에 시작 날짜를 입력하고 시간 구성 요소를 제공하지 않으면 기본 시작 시간이 제한 날짜를 작성하는 날짜에 추가됩니다.

작업의 시작 필드에 실제로 표시되는 내용은 Microsoft Project에서 날짜, 제약 조건, 선행 작업/후속 작업 및 일정 (프로젝트, 작업 및 리소스)을 계산하는 데 사용하는 요인에 따라 다릅니다.

보고 한 내용에서 프로젝트 일정이 7d24h 또는 자정에 시작하는 근무일을 포함한 비슷한 일정으로 설정되어있는 것처럼 보입니다. 따라서 코드를 통해 시작 날짜를 설정하면 제한 날짜가 자정 시작 시간으로 추가되고 프로젝트 달력에 작업 시간으로 자정에 작업이 시작되므로

newproj.Tasks(i - 6).SetField pjTaskStart, strStartDate 
:

시작 날짜를 설정하는 사용자 인터페이스 방법을 모방하려는 경우는 SetField 방법을 사용