MS Project 公式计算 returns 不一致的结果
MS Project formula calculation returns inconsistent results
在 MS Project Professional 中,我有一个自定义字段 returns 正确的值...有时,在其他时候没有值,而在其他时候,#ERROR 没有明显的押韵或原因。
目标:我需要捕获 [Resource Names] 字段以便在外部应用程序中使用 - 很简单 - 但是当我有一个资源单位有限的固定单位任务时,我需要排除“[##% ]" 的名称部分。示例:Sam[25%] 但我只需要“Sam”
公式:IIf(IsNumeric(InStr(1,[Resource Names],"[")),LEFT([Resource Names],Len([Resource Names])-5),[Resource Names])
结果汇总:
- 玛丽安 == M
- 萨姆 == #错误
- 山姆[25%] ==山姆
- IDNR == #错误
- 核心开发 == Cor
- 宾杜 == 宾杜
- 宾杜[50%] ==宾杜
- 米歇尔 == 米
- 米歇尔[25%] == 米歇尔
- 地煞==空
- 地煞[33%] ==地煞
- 斯图尔特[50%] ==斯图尔特
- 斯图尔特 == S
奇怪的是,摘要任务没有显示正确的值。
需求:谁能帮我修改一下公式?或者,我应该接受并手动删除有问题的括号和数字吗?
如果您只为一项任务分配了一个资源,则此公式有效:IIf(0=InStr(1,[Resource Names],"["),[Resource Names],Left([Resource Names],InStr(1,[Resource Names],"[")-1))
。
但是,由于可用函数有限,构建一个处理多个资源的公式将非常乏味。在那种情况下,更新字段的宏会更好:
Sub GetResourceNames()
Dim t As Task
For Each t In ActiveProject.Tasks
Dim resList As String
resList = vbNullString
Dim a As Assignment
For Each a In t.Assignments
resList = resList & "," & a.Resource.Name
Next a
t.Text2 = Mid$(resList, 2)
Next t
End Sub
在 MS Project Professional 中,我有一个自定义字段 returns 正确的值...有时,在其他时候没有值,而在其他时候,#ERROR 没有明显的押韵或原因。
目标:我需要捕获 [Resource Names] 字段以便在外部应用程序中使用 - 很简单 - 但是当我有一个资源单位有限的固定单位任务时,我需要排除“[##% ]" 的名称部分。示例:Sam[25%] 但我只需要“Sam”
公式:IIf(IsNumeric(InStr(1,[Resource Names],"[")),LEFT([Resource Names],Len([Resource Names])-5),[Resource Names])
结果汇总:
- 玛丽安 == M
- 萨姆 == #错误
- 山姆[25%] ==山姆
- IDNR == #错误
- 核心开发 == Cor
- 宾杜 == 宾杜
- 宾杜[50%] ==宾杜
- 米歇尔 == 米
- 米歇尔[25%] == 米歇尔
- 地煞==空
- 地煞[33%] ==地煞
- 斯图尔特[50%] ==斯图尔特
- 斯图尔特 == S
奇怪的是,摘要任务没有显示正确的值。
需求:谁能帮我修改一下公式?或者,我应该接受并手动删除有问题的括号和数字吗?
如果您只为一项任务分配了一个资源,则此公式有效:IIf(0=InStr(1,[Resource Names],"["),[Resource Names],Left([Resource Names],InStr(1,[Resource Names],"[")-1))
。
但是,由于可用函数有限,构建一个处理多个资源的公式将非常乏味。在那种情况下,更新字段的宏会更好:
Sub GetResourceNames()
Dim t As Task
For Each t In ActiveProject.Tasks
Dim resList As String
resList = vbNullString
Dim a As Assignment
For Each a In t.Assignments
resList = resList & "," & a.Resource.Name
Next a
t.Text2 = Mid$(resList, 2)
Next t
End Sub