如何使用 VBA 代码从 ms-project 的另一列中的文本自动添加文本
How can I add text automatically from text in another column in ms-project using VBA code
我有一列模具编号 (Text5),我想为产品名称自动添加文本 (Text2)
例如 如果模具编号(Text5) = 111 , Product Name(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
小值列表
自定义字段适用于较小的值列表。使用此公式自定义 Text2 字段:Switch([Text5] Like "*1111*","AA",[Text5] Like "*1234*","AB",[Text5] Like "*1233*","BB",[Text5] Like "*1232*","BA",True,"")
大量值
对于 Text5 字段中可能值的大量列表,请使用这样的宏。使用宏的缺点是,在宏为 运行 之前,对 Text5 字段的更改不会反映在 Text2 字段中。 (注意:与 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 Sub
我有一列模具编号 (Text5),我想为产品名称自动添加文本 (Text2) 例如 如果模具编号(Text5) = 111 , Product Name(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
小值列表
自定义字段适用于较小的值列表。使用此公式自定义 Text2 字段:Switch([Text5] Like "*1111*","AA",[Text5] Like "*1234*","AB",[Text5] Like "*1233*","BB",[Text5] Like "*1232*","BA",True,"")
大量值
对于 Text5 字段中可能值的大量列表,请使用这样的宏。使用宏的缺点是,在宏为 运行 之前,对 Text5 字段的更改不会反映在 Text2 字段中。 (注意:与 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 Sub