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

redefine

3 Posts

Posted - 11/16/2005 :  12:04:45
Доброе время суток.

Столкнулся со следующей проблемой:

Есть схема с большим количеством шейпов. У каждого шейпа - несколько свойств (Custom Properties):
Prop1 - String
Prop2 - Date
Prop3 - Number

Пытаюсь заполнять эти значения данными из excel:

Dim appExcel As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim str As String
Dim dat As Date
Dim nmb As Double

Set appExcel = CreateObject("excel.application")
appExcel.Visible = True
appExcel.Application.Workbooks.Open "c:\dev\data.xls"
Set xlSheet = appExcel.Worksheets("sheet1")
Set curShape = ActivePage.Shapes.Item("1111")

str = xlSheet.Cells(2, 3).Value
dat = xlSheet.Cells(2, 4).Value
nmb = xlSheet.Cells(2, 5).Value
curShape.Cells("Prop.Row_1.Value").Result(???) = str
curShape.Cells("Prop.Row_2.Value").Result(visDate) = dat
curShape.Cells("Prop.Row_3.Value").Result(visNumber) = nmb

Проблема: не могу понять, как перенести строку. Вместо ??? пробовал указать visUnitsString и т.п.

Поиском на форуме ответ не нашел =(
Заранее спасибо за любой комментарий!

MJ

Russia
13 Posts

Posted - 11/16/2005 :  12:14:58
Попробуй вместо Result использовать Formula.
curShape.Cells("Prop.Row_1.Value").Formula = Chr(34) & str & Chr(34)
Chr(34) - это кавычки, при добавлении строки необходимо ее в них заключать
Go to Top of Page

redefine

3 Posts

Posted - 11/16/2005 :  12:25:07
Спасибо!
Все получилось.
Go to Top of Page

redefine

3 Posts

Posted - 11/18/2005 :  18:20:11
Господа,
вы не поверите, но появилась новая проблема: убрать кавычки :)

Дело в том, что при копировании из Excel в CustProp с помощью добавления кавычек все работает отлично. Но назад данные пересылаются уже с кавычками. Видимо, следует либо убирать кавычки (метод, убирающий символ в строке по его положению я не нашел), либо пересмотреть способ решения задачи.

Спасибо!
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 11/18/2005 :  19:59:18
Стандартная VB функция Mid вырежет Вам из строки подстроку, начинающуюся со второго символа и заканчивающуюся за 1 символ до конца строки.
А в Visio SDK приведены функции прямого-обратного преобразования строк в строки Visio, которые работают даже в том случае, если внутри пересылаемой строки есть свои кавычки.
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)