All Forums
 Категория Visio
 Форум Вопросы и ответы
 Как изменить TheText
Author Previous Topic Topic Next Topic  

zhuravsky

Russia
115 Posts

Posted - 02/03/2009 :  12:17:06
Хотел в секции Actions записать такую формулу:
Setf(Getref(TheText), "B0")
но она почему то не работает.
Можно ли как-то изменять TheText?

Tumanov

Russia
1198 Posts

Posted - 02/03/2009 :  16:05:40
А что понимается под TheText? Это ячейка секции Events?
Если да, то в нее можно писать, как и в любую другую ячейку. Только символьная строка пишется в множестве кавычек.
Setf(Getref(TheText), """B0""")
Go to Top of Page

zhuravsky

Russia
115 Posts

Posted - 02/04/2009 :  05:15:23
Под TheText понимается текст шейпа (тот, который редактируется по F2 и значение которого можно получить так: ShapeText(Sheet.1!TheText)).
Получить то его можно, а вот изменить - нет.
Go to Top of Page

ukreni

Ukraine
35 Posts

Posted - 02/04/2009 :  14:09:10
Мне так же интересно как можно сменить текст фигуры с шейп-листа. Без VBA сам этого сделать не смог.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 02/04/2009 :  15:20:20
Изменить напрямую нельзя.
Делайте это через ячейку-посредник.
В шейп предварительно вводится поле Insert / Fields..., указывается ячейка User, Custom или Scratch. А в шейп листе формула с SetF будет записывать данные в эту промежуточную ячейку.
Go to Top of Page

ukreni

Ukraine
35 Posts

Posted - 02/05/2009 :  06:07:30
Так при данном подходе следующая проблема - добавить поле filds с VBA можно, а вот указать user, custom ... похоже, что нельзя.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 02/05/2009 :  16:04:36
Не понял, чего нельзя и зачем VBA. Вроде речь шла о работе из шейп-листа...
Давайте конкретизируем задачу. Например, нужно по событию перемещения шейпа обновлять в нем время. Пользоваться только шейп-листом.
----
Шейп, естественно, должен готовиться заранее.
Рисуем квадратик.
Создаем в нем секцию User-defined Cells.
Добавляем поле и вписываем в него Custom formula =User.Row_1
В ячейку EventXFMod вписываем формулу =SETF(GetRef(User.Row_1),NOW())
Все.
Теперь время от времени двигаем квадратик и видим, как в нем меняется значение времени.
Это срабатывает событие перемещения, время заносится в ячейку User.Row_1, а оттуда переписывается в текст шейпа.
Что не так?
Go to Top of Page

GDK

Russia
90 Posts

Posted - 02/24/2009 :  12:31:38
quote:
Originally posted by Tumanov

Изменить напрямую нельзя.
Делайте это через ячейку-посредник.


Очень жаль. Хотелось бы, чтобы пользователь мог, выделив фигуру как обычно, просто ввести текст и получить результат(без VBA). А если использовать поля, текст, введённый пользователем, сотрёт просто эти поля. Неудобно.
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)