Как я могу искать несколько имен задач с помощью MS Project-VBA? - PullRequest
0 голосов
/ 23 мая 2019

Как выполнить поиск по нескольким именам задач с помощью MS-Project VBA, учитывая, что у меня есть несколько имен задач, скопированных в буфер обмена и разделенных на элементы массива по Сплиту.

В этом коде я ищу одинзадача за один раз, выдавая идентификатор задачи и имя задачи.Что я хочу сделать, так это искать несколько идентификаторов задач за один раз.

Просто я хочу выполнить поиск по всему массиву x () в ActiveProject.Tasks, чтобы найти совпадения.

Sub NameExample()
Dim t As Task
Dim x() As String
Dim y As String
Dim p As Variant
Dim q As String

Dim MyData As DataObject
Dim strClip As String

Set MyData = New DataObject
MyData.GetFromClipboard
p = MyData.GetText
x = Split(p, vbCrLf)



    For Each t In ActiveProject.Tasks
        If InStr(1, t.Name, x(0), 1) Then
           y = y & vbCrLf & t.ID & ": " & t.Name
        End If
    Next t

    If Len(y) = 0 Then
        MsgBox "No tasks with the text "
    Else
        MsgBox y


   End If

End Sub

1 Ответ

1 голос
/ 24 мая 2019

Решено!

Sub NameExample()
Dim t As Task
Dim x() As String 
Dim p As String
Dim q As Variant

Dim MyData As DataObject
Dim strClip As String

Set MyData = New DataObject
MyData.GetFromClipboard
p = MyData.GetText
x = Split(p, vbCrLf)

For Each q In x
    For Each t In ActiveProject.Tasks
        If InStr(1, t.Name, q, 1) Then
            y = y & vbCrLf & t.ID & ": " & t.Name
        End If
    Next t
Next q

    If Len(y) = 0 Then
        MsgBox "No tasks with the text "
    Else
        MsgBox y
    End If

End Sub
...