Работаю в Visio 2016
Также столкнулся с проблемой изменения цвета в зависимости от значения свойств.
Конечно, можно решить так, и оно будет работать:
Цитата:
LineColor = IF(LOOKUP(Prop.Row_1,Prop.Row_1.Format)=0,RGB(205,138,255),IF(LOOKUP(Prop.Row_1,Prop.Row_1.Format)=2,RGB(255,100,30),RGB(160,32,240)))
Но хочется как-то поудобнее, через некий внутренний массив данных от INDEX'а:
Но формулу
INDEX(LOOKUP(Prop.Raw,Prop.Raw.Format),"RGB(255,50,50);RGB(100,100,100)") программа не понимает. Я так полагаю, что Visio читает список индекса как ряд текстовых значений, а не как самостоятельные формулы внутри массива.
Игрался с синтаксисом
(доходило даже до "=RGB(255,50,50);=RGB(100,100,100)"), но ничего не выходит.
В тщетных попытках, пришел к забавному извращению:
1. Добавил
User.RED и
User.GREY со значениями:
RGB(255,50,50) и
RGB(100,100,100)2. Вписал массив ссылками:
INDEX(LOOKUP(Prop.Raw,Prop.Raw.Format),"User.RED;User.GREY")Честно, я не понимаю логику программы, но оно заработало.
Конечно, оно так не должно быть. Это, как минимум, не красиво.
Считаю тему не закрытой.