All Forums
 Категория Visio
 Форум Вопросы и ответы
 Проход по строкам таблицы шейплиста
Author Previous Topic Topic Next Topic  

yabes

39 Posts

Posted - 01/18/2010 :  04:17:52
Доброе утро! Как написать цикл прохода по строкам таблицы "Connection points" шейплиста и присвоить каким-нибудь переменным значения X,Y.

yabes

39 Posts

Posted - 01/18/2010 :  15:34:57
quote:
Originally posted by yabes

Доброе утро! Как написать цикл прохода по строкам таблицы "Connection points" шейплиста и присвоить каким-нибудь переменным значения X,Y.


И еще вопрос, как узнать количество строк в какой-нибудь таблице в шейплисте?
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 01/18/2010 :  16:24:59
Количество строк - через RowCount.
До значений в данном случае удобнее добираться через CellsSRC.
В приведенном примере последовательно читаются ячейки X из всех строк секции Connection Points.
Sub ttt()
 Dim sh As Visio.Shape
 Set sh = ActivePage.Shapes(1)
 Debug.Print sh.RowCount(7)
 n = sh.RowCount(7)
 For i = 0 To n - 1
  Debug.Print sh.CellsSRC(7, i, 0)
 Next
End Sub
Go to Top of Page

yabes

39 Posts

Posted - 01/18/2010 :  17:05:41
quote:
Originally posted by Tumanov

Количество строк - через RowCount.
До значений в данном случае удобнее добираться через CellsSRC.
В приведенном примере последовательно читаются ячейки X из всех строк секции Connection Points.
Sub ttt()
 Dim sh As Visio.Shape
 Set sh = ActivePage.Shapes(1)
 Debug.Print sh.RowCount(7)
 n = sh.RowCount(7)
 For i = 0 To n - 1
  Debug.Print sh.CellsSRC(7, i, 0)
 Next
End Sub



Спасибо большое! Но только он выводит не в мм, а пишет что-то типа 9,84343423423432Е-02. как это исправить? Я знаю только 1 способ - это умножить на 25.4. Но должен быть посерьезнее)))

Edited by - yabes on 01/18/2010 17:41:05
Go to Top of Page

yabes

39 Posts

Posted - 01/18/2010 :  17:59:02
quote:

Спасибо большое! Но только он выводит не в мм, а пишет что-то типа 9,84343423423432Е-02. как это исправить? Я знаю только 1 способ - это умножить на 25.4. Но должен быть посерьезнее)))


Вроде разобрался! Надо дописать .Result("mm")
Go to Top of Page

yabes

39 Posts

Posted - 01/18/2010 :  18:02:41
Но возник следущий вопрос. У меня все Х=2,5 mm, а у меня в результате чтения из шейплиста получилось, что все правильно считались - 2,5 mm, а первый 2,50000000000001. Почему так?
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 01/18/2010 :  21:51:08
Так ошибки вычисления всегда какие-то есть... При выводе округлять надо, а если для расчета - так ошибка очень маленькая.
Go to Top of Page

yabes

39 Posts

Posted - 01/19/2010 :  09:40:56
quote:
Originally posted by Tumanov

Так ошибки вычисления всегда какие-то есть... При выводе округлять надо, а если для расчета - так ошибка очень маленькая.


Спасибо!
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)