Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
1082 / 521 / 142
Регистрация: 27.02.2013
Сообщений: 1,501
1

Измерение растояния в Excel

04.03.2014, 15:37. Показов 1684. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые форумчане!Помогите пожалуйста в решении следующей проблеммы.
Используя величины прямой линии(Height,Width,Top,Left),хотел измерять растояния на карте или схеме находящейся внутри документа.Всё получилось для случая измерения растояния между двух точек.А вот дальше возникли сложности в связи с тем,что не удается связать координаты начала и конца каждой прямой между собой.Т.к. каждой величине Height,Width,Top,Left соответствует 4 варианта прямых. Из-за чего связывая програмно две прямые между собой получается некоректное поведение связи,т.е. связывая конец одной линии с началом второй,при изменении координат первой иногда происходит обрыв этой связи и образовании связи "конец-конец" или "начало-начало".
В идеале задумывался следующий сценарий поведения связи между прямыми:
-строится прямая.
-после ее построения ей автоматически присваивается имя
-включается макрос по измерению ее длинны
-добавляется автоматически следующая прямая,связанная с первой(связь заключается в присвоении координат конца прямой 1 началу прямой 2),второй конец прямой 2 свободен для перемещения.
-при выделении(активации) прямой 2 после ее построения ей автоматически присваивается имя.

и т.д.

Таким образом можно измерять растояния на любой схеме или карте подобрав конкретный масштаб.
Вложения
Тип файла: xls ПУТЬ.xls (95.0 Кб, 12 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2014, 15:37
Ответы с готовыми решениями:

Измерение освещенности и формирование отчета в Excel
Сейчас вообщем-то можно язык выбрать любой для даннойй цели - но хочу попробовать на паскале. Могли...

Wi-Fi на дальние растояния
Здравствуйте уважаемые. У меня имеется D-link dir300 и длинковский usb адаптер wi-fi, живу в...

Нахождение максимального растояния
Подскажите, почему программа то работает, то нет? Что не так? И если 0 вводить, то всё...

Определение времени и пройденого растояния
Здравствуйте, нужно найти время и какое растояние за это время проедет человек от пункта А. ...

7
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
04.03.2014, 16:25 2
Не вникал, но сразу вопрос - почему отдельные прямые, а не ломаная ("Полилиния")?
В 2007 ее запрятали в Дополнительные, но после первого использования она появляется на панели "Линии".
0
1082 / 521 / 142
Регистрация: 27.02.2013
Сообщений: 1,501
04.03.2014, 16:30  [ТС] 3
"Полилиния" вообще не дает сведений о длине линии,а только о ее габаритах
0
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
04.03.2014, 16:49 4
А .nodes.points?
0
Модератор
Эксперт MS Access
11960 / 4828 / 779
Регистрация: 07.08.2010
Сообщений: 14,138
Записей в блоге: 4
04.03.2014, 17:00 5
я бы попробовала расставить опорные точки и макросом определить расстояние между ними
Вложения
Тип файла: zip ПУТЬ04.zip (73.3 Кб, 13 просмотров)
0
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
04.03.2014, 17:05 6
Нарисуйте ломаную, не снимая выделения запустите макрос
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub DlinaLomanoi()
Dim s As ShapeRange, n As ShapeNode, dlina#, x0#, x#, y0#, y#, not1node As Boolean
Set s = Selection.ShapeRange
For Each n In s.Nodes
  If not1node Then
    x = n.Points(1, 1)
    y = n.Points(1, 2)
    dlina = dlina + Sqr((x - x0) ^ 2 + (y - y0) ^ 2)
    x0 = x
    y0 = y
  Else
    x0 = n.Points(1, 1)
    y0 = n.Points(1, 2)
    not1node = True
  End If
Next
MsgBox "длина ломаной " & dlina
End Sub
Попробуйте передвинуть/добавить/удалить узлы и запускайте снова, смотрите, как меняется длина.
2
1082 / 521 / 142
Регистрация: 27.02.2013
Сообщений: 1,501
04.03.2014, 20:01  [ТС] 7
Казанский.Большое спасибо за ответ,но к сожалению длина ломаной не соответствует действительности.
это легко проверить построив прямую и замерив ее,затем изогнуть ее под прямым углом,получив таким способом два катета.

Добавлено через 36 минут
Извиняюсь.Это у меня где-то ошибка вкралась.Сегодня вечером потестирую

Добавлено через 1 час 9 минут
Большое спасибо за помощь!Всё работает отлично!
0
1082 / 521 / 142
Регистрация: 27.02.2013
Сообщений: 1,501
10.03.2014, 14:43  [ТС] 8
Для измерения на карте растояния в макрос ввёл коэффициент пересчета(масштабирования) и заметил,что результат каждый раз после нового открытия файла разный.Не пойму почему?
Помогите разобраться пожалуйста.
Вложения
Тип файла: rar метраж.rar (188.5 Кб, 8 просмотров)
0
10.03.2014, 14:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2014, 14:43
Помогаю со студенческими работами здесь

Составить программу на нахождение растояния
Составте программу и напишите объяснение к ней (как что делается) Даны координаты {(xi;yi)} ...

Программа для нахождения растояния
Здравствуйте, можете помочь написать программу: Определить координаты точки наиболее удаленной от...

узнать растояния между каждой станцией
Была у меня на олимпеаде одна задача до сих пор ни как не могу понять как её решать может...

составить программу нахождения периметра треугольника по заданным координатам его вершин,используя подпрограмму нахождения растояния между двумя точк.
составить программу для нахождения периметра треугольника по заданным координатам его...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru