首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用VBA代码从ms-project中的另一列的文本中自动添加文本?

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

Stack Overflow用户
提问于 2019-11-12 09:05:57
回答 1查看 321关注 0票数 2

我有列模数(Text5),我想自动添加产品名称(Text2)的文本--例如,如果模数(Text5)= 111,将自动创建产品名(Text2) "Trapez“,这是我的代码

代码语言:javascript
运行
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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没有任务级别的更改事件。)

代码语言:javascript
运行
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58815257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档