我有列模数(Text5),我想自动添加产品名称(Text2)的文本--例如,如果模数(Text5)= 111,将自动创建产品名(Text2) "Trapez“,这是我的代码
Sub AddProductName()
Dim Name As String
Dim tsk As Task
For Each tsk In ActiveProject.Tasks
Select Case True
Case (tsk.Text5 Like "*111*"): Name = "Trapez"
Case Else: Name = vbNullString
End Select
If Len(Name) > 0 Then
On Error Resume Next
If Err.Number <> 0 Then
tsk.Text2 = Name
End If
End If
Next tsk
End Sub发布于 2019-11-12 17:16:22
小值列表
自定义字段适用于一小部分值列表。使用以下公式自定义Text2字段:Switch([Text5] Like "*1111*","AA",[Text5] Like "*1234*","AB",[Text5] Like "*1233*","BB",[Text5] Like "*1232*","BA",True,"")

大的值列表
对于Text5字段中可能值的大列表,请使用如下宏。使用宏的缺点是,在运行宏之前,对Text5字段的更改不会反映在Text2字段中。(注意:与Excel不同,Excel在单元格级别有更改事件,Project没有任务级别的更改事件。)
Sub AddProductName()
Dim ProductName As String
Dim tsk As Task
For Each tsk In ActiveProject.Tasks
If Not tsk Is Nothing Then
Select Case True
Case (tsk.Text5 Like "*1111*"): ProductName = "AA"
Case (tsk.Text5 Like "*1234*"): ProductName = "AB"
Case (tsk.Text5 Like "*1233*"): ProductName = "BB"
Case (tsk.Text5 Like "*1232*"): ProductName = "BA"
Case Else: ProductName = vbNullString
End Select
tsk.Text2 = ProductName
End If
Next tsk
End Subhttps://stackoverflow.com/questions/58815257
复制相似问题