MSProject VSTO - 获取“参数值无效”。在尝试拆分任务时

时间:2017-01-04 14:16:00

标签: c# vba vsto microsoft-project-vba

我正在尝试使用从数据库获取的时间戳值来拆分任务。但问题似乎是当我将这些值传递给Task.Split方法时,我提出了异常。我让它工作一次但它不会再起作用了。

以下是日期函数的代码

                           Int32 start_date = (Int32)reader["pause_start"];

                            if (start_date != 0)
                            {
                                string start = UnixTimeStampToDateTime(start_date).ToString();
                                starttimes.Add(start);
                            }

                            Int32 finish_date = (Int32)reader["pause_stop"];
                            if (finish_date != 0)
                            {
                                string finish = UnixTimeStampToDateTime(finish_date).ToString();
                                finishtimes.Add(finish);
                            }

以下是拆分的代码:i是循环中的索引,其中我循环遍历每个任务。

var start = DateTime.Parse(starttimes.ToArray()[i]);
                                    var finish = DateTime.Parse(finishtimes.ToArray()[i]);
                                    this.Application.ActiveProject.Tasks[taskid].Split(start, finish);

这是MSProject中日期的格式

  

26.12.16 08.00

,我试图用(dd.MM.yy HH.mm)格式化DateTime但没有成功。

这是我得到的完整例外:

   System.Runtime.InteropServices.COMException (0x800A044D): The argument value is not valid.
       ved Microsoft.Office.Interop.MSProject.Task.Split(Object StartSplitOn, Object EndSplitOn)
       ved Fullkontroll.FullControl.getPause(Int32 taskid) i C:\Users\mar_s\Source\Repos\FullControl\Fullkontroll\Fullkontroll\FullControl.cs:linje 826

感谢您的每一次帮助

更新:05.01.2017 - 15:45 事实证明,整个事情是由于MSProject拒绝了分割的开始和结束日期相似的日期。所以请注意自己,下次我添加一个异常,我会在for迭代中捕获它,而不是在外面。通过这种方式,我至少可以获得有效日期

0 个答案:

没有答案