Как установить поле флага на Да или Нет на основе ввода текста - Microsoft-Project-VBA - PullRequest
2 голосов
/ 31 октября 2019

Я пытаюсь автоматизировать создание поля флага, основываясь на том, есть ли текст в описании задачи. Цель состоит в том, чтобы использовать текст для поиска по файлу проекта и для каждой строки с текстом, в поле флага, чтобы поставить да рядом с ним.

Я могу создать список активностей в проекте MS сидентификаторы строк.

Я не уверен, как использовать этот список для генерации «да нет» в поле флага

Sub Findtask()
Dim sTask As Task 'Summary level Task'
Dim aTask As Task 'Job level Task'
Dim Proj As Project 

x = InputBox$("Search for tasks that include the following text in their names:") 
Set Proj = ActiveProject
'Search for tasks tat include the following text in their names:"'
If Not x = "" Then
    For Each aTask In Proj.Tasks
    If InStr(1, aTask.Name, x, 1) Then
        y = y & vbCrLf & aTask.ID & ": " & aTask.Name
    End If
    Next aTask
    ' If No tasks exist then end'
    If Len(y) = 0 Then
        MsgBox "No Tasks with the text" & x & " found in the project", vbExclamation
        Else
            MsgBox y
        End If
    End If
End Sub

См. изображения ниже

enter image description here

enter image description here

Example of this

ID    Task Name  Flag 1(Hydro)
1     Hydro 1    Yes
2     basket 1   No
3     Hydro 2   Yes

1 Ответ

1 голос
/ 31 октября 2019

Этот код устанавливает поле флага (в данном случае Flag1). Если в поле «Имя задачи» содержится нужный текст, для флага будет установлено значение «Да», в противном случае это будет №

Sub FlagTasks()

    Dim txt As String
    txt = InputBox("Flag tasks that include the following text in their names:")

    Dim tsk As Task
    For Each tsk In ActiveProject.Tasks
        tsk.Flag1 = (0 < InStr(1, tsk.Name, txt, 1))
    Next tsk

End Sub
...