C# C上的时间刻度数据

C# C上的时间刻度数据,c#,.net,vsto,C#,.net,Vsto,我正在将宏代码迁移到VSTO。我在时间刻度数据方面有问题。宏代码是这样的 For Each tsk In ActiveProject.Tasks If tsk.Summary = False And tsk.Duration <> 0 Then With tsk Set tsvs = .TimeScaleData(StartDate:=ActiveProject.ProjectStart, EndDate:=ActiveProject

我正在将宏代码迁移到VSTO。我在时间刻度数据方面有问题。宏代码是这样的

For Each tsk In ActiveProject.Tasks
    If tsk.Summary = False And tsk.Duration <> 0 Then
        With tsk 
            Set tsvs = .TimeScaleData(StartDate:=ActiveProject.ProjectStart, EndDate:=ActiveProject.ProjectFinish, Type:=pjTaskTimescaledBaselineWork, timescaleunit:=pjTimescaleWeeks, Count:=1)
        End With
        For Each tsv In tsvs 
           differencedate = 0
           If tsk.BaselineStart <> "NA" And tsk.BaselineFinish <> "NA" Then

                If tsk.BaselineStart >= tsv.StartDate And tsk.BaselineStart <= tsv.StartDate + 7 And tsk.BaselineFinish <= tsv.StartDate + 7 Then
                    differencedate = Application.DateDifference(tsk.BaselineStart, tsk.BaselineFinish, ActiveProject.Calendar) / 60

                ElseIf tsk.BaselineStart >= tsv.StartDate And tsk.BaselineStart <= tsv.StartDate + 7 And tsk.BaselineFinish >= tsv.StartDate + 7 Then
                     differencedate = (Application.DateDifference(tsk.BaselineStart, tsv.StartDate + 7, ActiveProject.Calendar)) / 60


                ElseIf tsk.BaselineStart <= tsv.StartDate And tsk.BaselineFinish >= tsv.StartDate And tsk.BaselineFinish <= tsv.StartDate + 7 Then
                     differencedate = (Application.DateDifference(tsv.StartDate, tsk.BaselineFinish, ActiveProject.Calendar)) / 60

                ElseIf tsk.BaselineStart <= tsv.StartDate And tsk.BaselineFinish >= tsv.StartDate + 7 Then
                     differencedate = Application.DateDifference(tsv.StartDate, tsv.StartDate + 7, ActiveProject.Calendar) / 60

                End If
          End If
    Next
    End if
Next

我需要把这个翻译成C,有谁能帮我吗?

到目前为止你有什么代码?代码中有例外吗

无论如何,您可以使用自动快速入门。然后您可以手动更正代码


看看文章中列出的示例代码。

到底是什么问题?有错误消息吗?我无法使用任务列表{if Task.Summary==false&&System.Convert.ToInt32task.Duration!=0中的每个任务的时间刻度数据{TimeScaleValues tsvs=task.TimeScaleDataproject.ProjectStart,project.ProjectFinish,PjAssignmentTimescaledData.pjAssignmentTimescaledBaselineWork,PjTimescaleUnit.pjtimescaleeweeks,1;用于tsvs中的每个TimeScaleValue tsv{if task.BaselineStart.ToString!=NA&&task.BaselineFinish.ToString!=NA{}}在获取信息方面有问题tsvs@GilbertAllanWong这是回答还是Tweet?;-两者都有?实际上是错误操作系统,我使用赋值而不是任务。//TimeScaleValue tsv;//TimeScaleValues tsvs;//任务列表中的每个任务//{//tsvs=task.TimeScaleDatatask.Start,task.Finish,PjAssignmentTimescaledData.pjAssignmentTimescaledBaselineWork,PjTimescaleUnit.pjTimescaleWeeks,1;//}我尝试使用相同的逻辑,但在无效参数上出现错误,似乎TimeScaleData只能在赋值上工作。问题是我需要将上述代码精确转换为C VSTO