我试图获取MSProject中所选字段的数据类型。有8种类型的数据(成本,日期,文本......),我想用Visual Studio开发一个小插件,根据我选择的数据类型进行一些计算。 在这个网站的帮助下,我找到了如何获得该字段的名称:
Application.ActiveSelection.FieldNameList[0]
(如果我选择多个字段,那么下一步可能会有所帮助==>什么都不做)
但是我无法找到返回所选字段的数据类型的方法 有人知道我该怎么办? For example, if I select this field, my programm has to return : text
答案 0 :(得分:0)
您需要为数据类型构建FieldName或FieldID的映射。
请注意,日期字段也可以包含文字(例如,在该字段中有日期之前,ActualStart将包含NA。)
此外,使用任务的本机属性来获取数据,而不是ActiveCell
属性或返回显示值的GetField
方法。
例如,如果活动单元格是显示2天的持续时间字段:
ActiveCell
返回" 2天"," 2d"或" 2 d"等等,具体取决于用户&#39 ; s配置。
ActiveCell.Task.GetField(pjTaskDuration)
返回相同的内容。
ActiveCell.Task.Duration
返回960(Int32)。
<强>更新强>
对于最终用户创建的自定义字段,TryParse
可用于确定可能的数据类型。这是一个简单的vb示例:
Dim s As String
Dim d as Date
With Application.ActiveSelection
s = .Tasks(0).GetField(.FieldIDList(0))
End With
If Date.TryParse(s, d) Then
' it is a date
Else
' it's not a date, maybe check to see if it's an integer
End If