![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Пользователь
Регистрация: 02.07.2009
Сообщений: 12
|
![]()
Попробую по-порядку все так и ответить.
Обрабатываем 6000 ячеек В которых в среднем тысячи четыре могут нести в себе какое то число то есть наши точки. В ячейках во всех для удобства везде 1 число то есть например 7, вот в 4 тысячах ячеек у нас стоит число 7, ну какое это число в принципе это не важно. Или если для макроса поиска нужна нумерация можно все точки пронумеровать в столбик вниз если так нужно., но удобнее если это просто одно число что бы не путаться, а макрос если я правильно понял ищет именно позиционирование, то есть не пустую ячейку Если на 1 линии лежат точки 1-2-3 и между ними одинаковое расстояние лучше конечно если линия ляжет одна и от 1 до 3, а не 1-2 и 2-3. Точки заносятся согласно рисунка а именно вручную, но тут как бы сложности в этом нет. На листе нет закрашенных ячеек, нет заголовка запись идет с первой строки первого столбика вправо вниз. Что бы не путаться можно задать диапазон для поиска например ширина 100 столбиков вправо, вниз 60 строк. В примере 6 я выложил фрагмент для наглядности как все выглядит, ну естественно он больше и шире и исходная точка у нас не в строке 20 а например 60. Посмотрите пожалуйста пример. Мы к примеру возле исходной точки в этом месте или в каком нибудь другом поставим потом кнопку которая будет выполнять эти все команды, ну хотелось бы во всяком случае что б так было. |
![]() |
![]() |
![]() |
#12 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() |
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 02.07.2009
Сообщений: 12
|
![]()
Ого, ничего себе. Нет слов, круто. Единственное, ф-ция поиска как мне кажется немного ошибается то есть есть и верные линии то есть точки на одинаковом расстоянии а есть линия проводится там где точки лежат на 1 прямой но от исходной на разных расстояниях друг от друга, что есть ошибка.
В верхней строке константа число строк и столбцов можно менять в большую сторону? например 100 и 60, и количество точек, как я понял k = 3 можно поставить например 10 будет оно искать? Можно я уберу ф-цию случайного выбора точек? это не повлияет на другие ф-ции? А вообще задумка решения задачи просто восхитительна. Вы гений. |
![]() |
![]() |
![]() |
#14 | ||||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Поэтому просто ищутся точки, лежащие на одной прямой. Цитата:
Цитата:
Цитата:
Но помните, что в данной версии макроса ячейки с жирным шрифтом не обрабатываются. Поэтому надо производить очистку форматирования ячеек перед рисованием линий. Вообще, это была лишь тестовая версия макроса. Вряд ли Вам удастся применить её к реальным данным без существенной переделки. |
||||
![]() |
![]() |
![]() |
#15 |
Пользователь
Регистрация: 02.07.2009
Сообщений: 12
|
![]()
Я понял спасибо большое, а можно как то дополнить что бы они были на равных расстояниях и добавить еще одно условие такое как *Линия должна проводится если точки лежат на одной прямой и расстояние от исходной точки одинаковое со всеми точками и задача выполнена если на линии лежит минимум четыре точки, включая исходную.
Это наверно будет полное решение задачи. ![]() Последний раз редактировалось Govard; 04.07.2009 в 13:21. |
![]() |
![]() |
![]() |
#16 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
В рамках Евклидовой геометрии такое невозможно - на одной прямой могут находиться не более 2 несовпадающих точек, равноудалённых от исходной. |
|
![]() |
![]() |
![]() |
#17 |
Пользователь
Регистрация: 02.07.2009
Сообщений: 12
|
![]()
То есть невозможно в коде макроса как задачу написать? Хм. Надо подумать. В примере7 я выложил по условиям наглядный пример того что имел в виду.
|
![]() |
![]() |
![]() |
#18 |
Пользователь
Регистрация: 02.07.2009
Сообщений: 12
|
![]()
Ув. EducatedFool
С количеством точек, не ясно, но в принципе возможно задать макросу параметр что бы линии рисовались только где между точками одинаковое расстояние? А дальше может можно будет просто перетаскивать Исходную точку.... ![]() |
![]() |
![]() |
![]() |
#19 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Но делать ничего не буду, пока не будет подробного тех.задания с примерами для различных вариантов расположения точек. Рисунок в Примере7 не соответствует заданию из поста #15: Цитата:
И___*_*_*_*___*___*_*_*_* Сколько в данном случае рисовать линий? Откуда, и куда? Выяснять все эти нюансы через форум не имею ни малейшего желания. Если есть Скайп - звоните. Было бы чётко сформулированное задание - уже получили бы готовое решение. |
||
![]() |
![]() |
![]() |
#20 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Вот что получилось: (см. вложение)
Добавлена желтая кнопочка - она позволяет нарисовать линии, начинающиеся со всех желтых ячеек (стартовая точка перемещается с первой до последней ячейки желтой строки, и для каждого из положений рисуются линии) ![]()
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
![]() Последний раз редактировалось EducatedFool; 05.07.2009 в 21:14. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите пожалуста написать макрос | Kuchum-83 | Microsoft Office Excel | 8 | 22.04.2009 14:51 |
Помогите написать макрос!!! | zmax123 | Microsoft Office Excel | 4 | 16.03.2009 14:02 |
Помогите написать макрос | Urban | Microsoft Office Excel | 3 | 03.03.2009 22:28 |
Помогите написать макрос для... | КотФиларет | Microsoft Office Word | 15 | 24.01.2009 23:00 |
Помогите написать макрос | Neo007 | Microsoft Office Excel | 4 | 24.10.2008 07:25 |