如何使用VBA代码从ms-project的另一列中的文本中自动添加文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用VBA代码从ms-project的另一列中的文本中自动添加文本相关的知识,希望对你有一定的参考价值。

我有模具编号(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
答案

小值列表

定制字段适合于一小部分值。使用以下公式自定义Text2字段:Switch([Text5] Like "*1111*","AA",[Text5] Like "*1234*","AB",[Text5] Like "*1233*","BB",[Text5] Like "*1232*","BA",True,"")

how to add formula to customize a field

值的大列表

要在Text5字段中获取大量可能的值,请使用这样的宏。使用宏的不利之处在于,在运行宏之前,对Text5字段的更改将不会反映在Text2字段中。 (注意:与Excel在单元格级别具有Change事件的Excel不同,Project没有任务级的change事件。)

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

以上是关于如何使用VBA代码从ms-project的另一列中的文本中自动添加文本的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2012 Express 如何从一列中提取信息并将其与具有表达式限制的另一列进行比较

如何将一列的列值组合到 MySQL 中的另一列中?

熊猫:从数据透视表中的另一列中减去一列

从不同表的另一列中的一列中查找所有值

如何在同一查询的另一列中引用聚合列?

如何将约束添加到 MYSQL 中的列仅以保存已存在于同一表的另一列中的值? [复制]