Пользовательский конкатенация Excel с условием цвета

573
Roman Žydyk

У меня есть эта пользовательская функция VBA

Public Function concatenatespecial(rng As Range) As String  Dim rng1 As Range  concatenatespecial = ""  For Each rng1 In rng If (Not Rows(rng1.Row).Hidden) And (rng1.Value <> "") And (Not rng1.Interior.ColorIndex = -4142) Then concatenatespecial = concatenatespecial & rng1.Text & "|" End If Next rng1  End Function 

Он берет все желтые и непустые ячейки в диапазоне и объединяет его с "|".

Проблема в том, что он работает, только если эти ячейки окрашены вручную. Когда это окрашено условным форматированием, это не работает.

Не могли бы вы помочь мне с решением?

Лучшее объяснение:

Пользовательский конкатенация Excel с условием цвета

0
Измените `rng1.Interior.ColorIndex` на` rng1.DisplayFormat.Interior.ColorIndex` Scott Craner 6 лет назад 2
@MateJuhasz: я немного застрял. Мое условие в условном форматировании: `= AND ('Psaní, nakládka, závoz'! $ I8 =" X "; 'Psaní, nakládka, závoz'! $ H8 =" R ")`. Я пытался применить его в коде VBA: `And (Sheets (" Psaní, nakládka, závoz "). Range (I8) =" X ") And (Sheets (" Psaní, nakládka, závoz "). Range (H8) = «R») Тогда` ... Но я думаю, что есть проблема именно с этим диапазоном. Как сделать это лучше? @ScottCraner: к сожалению, это не работает. Делает только ошибку # VALUE. Roman Žydyk 6 лет назад 0
Может быть, это может как-то помочь? [Ссылка] (http://www.cpearson.com/excel/CFColors.htm) Roman Žydyk 6 лет назад 0
Возможно извлечь цвет, используя объект `FormatConditions`, а затем протестировать оба цвета (при условии, что ручной цвет не влияет на возвращаемое значение formatconditions)? (https://msdn.microsoft.com/en-us/library/office/ff196650.aspx) Yorik 6 лет назад 0

0 ответов на вопрос

Похожие вопросы