Это подход:
1, Filter(Split(x, ","), "[")
получить строки, содержащие "[...]"
2, объединить эти строки в одну с помощью join function
(это позволяет избежать ошибки, которые возникают, когда фильтр ничего не возвращает)
3, удалите символы "[" и "]" с помощью replace function
4, удалите ненужные пробелы с помощью trim function
. Вот код теста:
Sub Test()
x = "word 1, word 2, ..., word n, [Etiquette], many other words"
z = Trim(Replace(Replace(Join(Filter(Split(x, ","), "["), ","), "[", ""), "]", ""))
'z = Replace(Join(Filter(Split(Replace(x, "[", "]#"), "]"), "#"), ","), "#", "")'vs2
Debug.Print Z
End Sub