Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 23 окт 2018, 01:34

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Как значению одной ячейки присвоить значение другой
СообщениеДобавлено: 24 июл 2015, 14:41 
Не в сети
Бывалый

Зарегистрирован: 19 июн 2015, 22:18
Сообщений: 101
Использую Visio c: 2013
Очков репутации: 21

Добавить очки репутацииУменьшить очки репутации
Есть ячейка документа
Код:
TheDoc!User.N7 = "IF(User.N7_Hand=0,PAGECOUNT()-1,User.N7_Hand)

Есть ячейка в шейпе Prop.N7

Мне нужно присвоить Prop.N7 значение из TheDoc!User.N7. Как это сделать?

MyShape.Cells("Prop.N7.Value").FormulaU = MyDoc.Cells("User.N7").FormulaU - так не подходит. А как правильно?

Есть свойство у ячейки Result, но как с ним работать?

Нашел, не знаю пока правильно ли:
Код:
i = DocSh.Cells(FullDocName).ResultInt(visNumber, visTruncate)


Хорошо. когда знаешь заранее тип результата. А когда не знаешь (variant) как быть?

Так не работает:

Код:
   s = DocSh.Cells(FullDocName).Result(visUnitsString)
    MainGroup.CellsU(FullName).Formula = """" & s & """"


Если есть формула в ячейке источнике, то работает так:
Код:
    s = DocSh.Cells(FullDocName).Result(visUnitsString)
    MainGroup.Cells(FullName).Formula = s

А если константа (строковая), то так:
Код:
    s = DocSh.Cells(FullDocName).Formula
    MainGroup.Cells(FullName).Formula


Почему
s = DocSh.Cells(FullDocName).Result(visUnitsString)
возвращает 0, когда в это время в ячейке установлена формула
="Шифр документа"

Вот так заработало:
Код:
If (DocSh.Cells(FullDocName).IsConstant) Then
        MainGroup.Cells(FullName).Formula = DocSh.Cells(FullDocName).Formula
Else
        MainGroup.Cells(FullName).Formula = DocSh.Cells(FullDocName).Result(visUnitsString)
End If


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как значению одной ячейки присвоить значение другой
СообщениеДобавлено: 24 июл 2015, 16:17 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 897
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 120

Добавить очки репутацииУменьшить очки репутации
vin писал(а):
MyShape.Cells("Prop.N7.Value").FormulaU = MyDoc.Cells("User.N7").FormulaU

так должно работать отлично. видимо в другом ошибка.

если нужно получить строку из ячейки, то используй ResultStr(0) - возвращает результат без кавычек. если нужна именно формула - то Formula. если нужно вернуть число, то ResultIU.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как значению одной ячейки присвоить значение другой
СообщениеДобавлено: 24 июл 2015, 16:59 
Не в сети
Бывалый

Зарегистрирован: 19 июн 2015, 22:18
Сообщений: 101
Использую Visio c: 2013
Очков репутации: 21

Добавить очки репутацииУменьшить очки репутации
Спасибо


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как значению одной ячейки присвоить значение другой
СообщениеДобавлено: 27 июл 2015, 02:24 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
vin писал(а):
Есть ячейка документа
Код:
TheDoc!User.N7 = "IF(User.N7_Hand=0,PAGECOUNT()-1,User.N7_Hand)

Есть ячейка в шейпе Prop.N7

Мне нужно присвоить Prop.N7 значение из TheDoc!User.N7. Как это сделать?
вы все еще кипятите ?
vin в сообщении #7363 писал(а):
Можно вообще отказаться от этой ячейки с формулой. Тогда в каждом листе вместо указателя на TheDoc!N7 будет формула IF(TheDoc!N7_Hand=0,PAGECOUNT()-1,TheDoc!N7_Hand). Может лучше так и сделать?
Тогда нужно ввести эмпирическое правило: никаких формул в свойствах документа - только константы.
я думал ты уже отказался от идеи использования формулы в ячейке TheDoc ?!?
я считаю, это самый простой и самый верный выход. тогда отпадет необходимость писать макросом формулы шейпшита !


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB