Выберите ячейку в формуле с ее положением, связанным с именем столбца в таблице данных. - PullRequest
0 голосов
/ 06 июня 2019

У меня очень специфическая проблема в моем коде VBA. И я не нашел ни одной полезной темы ни на одном форуме.

В любом случае, вот в чем проблема. У меня есть макрос, который должен генерировать условное форматирование для моей электронной таблицы.

'Set segment_heading = Sheets("TRT RTI Challenges").Cells.Find("SEGMENT PCC")
'Range(Cells(2, r.Column), Cells(500, r.Column)).Select
Range("A2:AG3000").Select

'Mise en forme conditionnelle 2
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
    "=ET($M2=""Bleu"")"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 16636367
    .TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False

Как видите, мое форматирование зависит от формулы "= ET ($ M2 =" "Bleu" ")" Дело в том, что столбец М имеет конкретное имя, скажем, «Цвета». Иногда колонны движутся

1 Ответ

0 голосов
/ 06 июня 2019

Это должно сделать это:

Option Explicit
Sub Test()

    With ThisWorkbook.Sheets("TRT RTI Challenges").Range("A2:AG3000")
    'Mise en forme conditionnelle 2
        .FormatConditions.Add Type:=xlExpression, Formula1:=MyFormula("Colors")
        '"=ET($M2=""Bleu"")"
        .FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With .FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 16636367
            .TintAndShade = 0
        End With
        .FormatConditions(1).StopIfTrue = False
    End With

End Sub
Function MyFormula(Column As String) As String

    Dim Col As Long
    Dim MyCell As String

    With ThisWorkbook.Sheets("TRT RTI Challenges")
        Col = .Rows(1).Find("Colors").Column
        MyCell = Left(.Cells(2, Col).Address, 2) & 2
        MyFormula = "=ET(" & MyCell & "=""Bleu"")"
    End With

End Function

И пока вы здесь, вы должны проверить это о как избежать использования select

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