我在 MSProject 中拥有所有信息,并想根据“文本 1”列中的值设置列“大纲级别”列>
我无法设置列的类型,因为这些是由项目预设的。
我曾尝试将文本 1 中的值手动复制并粘贴到大纲级别,但项目不允许这样做,所以我想做一个 If/Then 语句来输入值。如果文本 1 是 1,那么大纲级别是 1,等等。我想在大纲级别中输入每个值,然后转到下一行并执行相同操作,直到每个大纲级别都已输入。
Sub OutLineLevel()
Set projApp = ActiveProject
Dim OutlineLevel As Long
Dim Text1 As Long
Dim i As Long
For i = 1 To 4
If projApp.Text1(i, 0) = 1 Then
projApp.OutlineLevel(i, 0) = 1
ElseIf projApp.Text1(i, 0) = 2 Then
projApp.OutlineLevel(i, 0) = 2
ElseIf projApp.Text1(i, 0) = 3 Then
projApp.OutlineLevel(i, 0) = 3
ElseIf projApp.Text1(i, 0) = 4 Then
projApp.OutlineLevel(i, 0) = 4
Else: projApp.Text1(i, 0) = 5
End If
Next i
End Sub
我在第一个“If”语句中得到“Property Not Defined”
Sub SetOutlineLevel()
Dim tsk As Task
For Each tsk In ActiveProject.Tasks
tsk.OutlineLevel = tsk.Text1
Next tsk
End Sub
注意:Text1中的值必须有效(例如,第一个任务必须是级别1,大纲级别不能一次增加超过一个等)。
顺便说一句,你得到错误的原因是因为你试图将 Text1 用作数组但它从未声明为数组。
Sub SetOutline()
Dim t As Task
For Each t In ActiveProject.Tasks
If Not t Is Nothing Then
t.OutlineLevel = t.Text1
End If
Next t
End Sub