Действие Excel VBA выключить цвет из таблицы - PullRequest
0 голосов
/ 13 июля 2020

Хотя я неплохо разбираюсь в Excel, я впервые пытаюсь использовать VBA, поэтому буду благодарен за любые указатели.

У меня есть диаграмма Ганта с ячейками, выделенными в зависимости от месяца использования ресурса :

Все начинается так и продолжается в течение всех кварталов

Я надеялся сделать во второй таблице дубликат таблицы Ганта. , но замените основные моменты указателем / совпадениями третьей таблицы на основе столбца управления проектом на приведенном выше изображении.

Однако, хотя я изучил и смог изменить цвет ячейки (используя .Interior .Color) моя первая проблема заключалась в том, что я хотел перебрать всю таблицу (настоящую таблицу Excel, которую я назову Gantt ), но без особого успеха. Что мне удалось сделать, так это действовать на основе единственного столбца в Gantt . Однако, как вы можете видеть, хотя мне удалось это сделать, я не смог создать индексное соответствие для оператора IF и вместо этого попытался заменить цвет на Y, а затем создать промежуточную таблицу для окончательной таблицы для заполнения from.

With tbl.DataBodyRange
    R = .Rows.Count
    C = .Columns.Count
End With
i = 7 'this is where the table starts    
T = R + i

    Do Until i = T
    If ws.Range("D" & i).Interior.Color = ws.Range("D2").Interior.Color Then ws.Range("D" & i).Value = "Y"
    i = i + 1
    Loop

Итак, в идеале я хотел бы знать:

a) Как мой текущий код может быть преобразован в l oop через все столбцы в моей таблице ( поскольку он в настоящее время проходит только по столбцу D)

b) Вместо того, чтобы находить общее количество столбцов и строк в таблице и выполнять действия с этими числами, просто выполните проверку и действие для каждой ячейки в Gantt table

c) вместо добавления дополнительного шага добавления «Y» к рассматриваемой таблице, чтобы просто выполнить прямое соответствие IndexMatch в таблице Results из Ганта и Индекс таблицы

Большое спасибо за ваше время с этой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...