Если у вас все в порядке с формулой (я знаю, что вы просите VBA ...), вы можете использовать ее:
=IF(COUNTA(A1:D1)=2,A1&" and "&B1,TEXTJOIN($A$5:$B$5,TRUE,A1:D1))
В A5
, поставьте только запятую ипространство. В B5
введите , and
(обратите внимание, что после and
есть пробел).
![enter image description here](https://i.stack.imgur.com/PnZfi.jpg)
Редактировать: я буду работать на VBAответ ... но держите это, так как я узнал, что вы можете иметь несколько разделителей в одном TEXTJOIN()
, который я не знал!
Edit2: После просмотра ваших данных вы все равно можете использовать формулу. Опять же, поместите где-нибудь ,
и , and
(я использовал A8:B8
здесь):
Введите это как формулу массива:
=TEXTJOIN($A$8:$B$8,TRUE,IF(B1:B4="YES",A1:A4,""))
![enter image description here](https://i.stack.imgur.com/a3hWL.jpg)
И VBA (немного обманывают, поскольку я просто использую эту формулу, но она работает):
Sub t()
Dim output As String
output = Evaluate("=TEXTJOIN($A$8:$B$8,TRUE,IF(B1:B4=""YES"",A1:A4,""""))")
End Sub