MS Project VBA - итерация по отображаемому номеру строки

У меня проблема с использованием for Цикл в этом MS Project VBA Макрос:

Sub Check_Change_Article ()
    Dim ProjTasks As Tasks
    Dim ProjTask As Task
    Dim Art As String
    Dim ArtOld As String
    Set ProjTasks = ActiveProject.Tasks
    ArtOld = ""
    Для каждого ProjTask в ProjTasks             
    Если нет (ProjTask - ничего), то        
        Art =ProjTask.Text22
        Если (Art!= ArtOld) Тогда
            ProjTask.Text4 = "CHANGE"
        Конец, если
        ArtOld = Art
    Конец, если
    Next ProjTask
End Sub

Пример проекта

Случай 1: Лист, когда задание открыто:         
VBA Row #     TaskID     Text22    Text4 
1               1        PNL50R ИЗМЕНЕНИЕ
2               2        PNL50R          
3               3        JPL50Y ИЗМЕНЕНИЕ
Случай 2: пользователь может фильтровать, группировать или заказывать задачи (обратите внимание на изменение номера строки)
VBA Row #     TaskID     Text22    Text4
1               3        PNL50R ИЗМЕНЕНИЕ
2               1        PNL50R ИЗМЕНЕНИЕ
3               2        JPL50Y    

Я прочитал это обсуждение: MS проекта VBA связать задачу со строкой

С помощью ActiveSelection.Tasks вместо ActiveProject.Tasks я вижу это for цикл повторяется в соответствии со строками VBA.

Можно ли установить цикл для итерации по номеру строки VBA, не используя ActiveSelection (если это возможно, я бы не заставлял пользователя выбирать строки)?

Заранее спасибо, Джузеппе

1 ответ

Вы можете использовать Application.SelectSheet (чтобы пользователю не приходилось вручную выбирать задачи). Затем вы можете просмотреть коллекцию ActiveSelection.Tasks. Когда вы закончите, вы можете использовать Application.SelectBeginning, чтобы выбрать только первую задачу.

Другие вопросы по тегам