excel - 使用 Excel 工作表中的值设置任务的工作完成字段
问题描述
我正在使用 VBA 使用 Excel 工作表中“工作完成”列中的值设置项目任务的每个“工作完成”字段。
当我将工作完成字段设置为 100 时,有时会将项目任务的工作完成设置为 0。任何其他值都不会发生这种情况。
这是我的代码:
For Each row In tasksDict.Keys
Dim t As task
' Get unique id in this row
UID = Range("A" & row)
workCompl = Val(Range("F" & row)) * 100
Debug.Print ("ID: " & UID & "Work complete: ") & workCompl ' This prints out the correct values
Set t = prj.tasks.uniqueID(UID) ' Get task by unique ID
If Not t.Summary Then
t.SetField FieldID:=188743713, Value:=workCompl ' Set task work complete
End If
Next row
解决方案
您的代码没有将工作完成字段设置为 100,而是将 F 列中的现有值乘以 100。
workCompl = Val(Range("F" & row)) * 100
由于您使用的是上述公式,因此只有当 F 列的值为 1 时,您才会得到 100。如果您的目标是将所有内容都设置为 100,请使用:
workCompl = 100
希望这可以帮助。
编辑1:
你可以试试这个而不是你有的 if 语句:
If Not t.Summary Then
projectField = FieldNameToFieldConstant("PercentComplete")
t.SetField FieldID:=projectField, Value:=workCompl ' Set task work complete
End If