【发布时间】:2020-07-01 07:10:46
【问题描述】:
我正在开发大量宏来从 MSP 文件和 Excel 文件中读取工作负载数据,以更新总体规划和资源池(都是 MSP)。
我的 Excel 文件都有相同的模板和列表任务、开始日期、结束日期和分配的资源,看起来像这样
任务由宏创建,包含开始日期和结束日期。这部分工作正常。甚至大纲级别也可以正常工作。
宏读取 Excel 的第 12 列中的数据以获取资源名称(存储在一个数组中)并与资源池中列出的名称交叉检查名称(存储在第二个数组 ResPoolArr 以及相应的 ID 中)。
我的问题是 Ta.Assignments.Add ResourceID:=ResPoolArr(RowResPoolArr, 1), Units:=1 在我获得有效 ID 时返回“资源不存在”错误(例如 ResPoolArr(RowResPoolArr, 1) = 50)
我还尝试了另一种方法,使用 Ta.Resources.Add(),但它也不起作用。
【问题讨论】:
-
你可以尝试构建minimal reproducible example吗?
-
1) 为什么strs前和Next后都有*? 2) 某些关键字没有大写(tasks, id),这表明该属性可能无法正确识别。对于注入,最好在 MS Project 中创建代码,以便对其进行全面测试,然后将其移动到将要注入的文本文件中。
-
另外,请尝试:Set ResAs = ta.Assignments.Add(ResourceID:=Proj.Resources(assign(0)).ID)。
标签: vba ms-project