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, чтобы выбрать только первую задачу.