|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.10.2014, 17:42 | #1 |
Пользователь
Регистрация: 22.04.2013
Сообщений: 17
|
Создание фигуры по условию
Я запускаю макрос из ячейки, с текстом.
Идет проверка, если фигура с таким именем (как содержание ячейки) уже есть на листе, то фигура выделяется. Иначе создается новая фигура (например прямоугольник) с таким именем, как содержание ячейки. Что то не смог найти процедуру поиска фигур. И фигуры могут иметь одинаковое имя, как с этим быть. Заранее спасибо. |
10.10.2014, 17:58 | #2 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Цитата:
Код:
Цитата:
лучше такого не допускать изначально - а то потом никак не определите, какая нужная, а какая нет |
||
10.10.2014, 18:13 | #3 |
Пользователь
Регистрация: 22.04.2013
Сообщений: 17
|
Спасибо, работает, дальше уже разберусь
|
13.10.2014, 12:35 | #4 | |
Пользователь
Регистрация: 22.04.2013
Сообщений: 17
|
Не определяет, что фигуры нет.
Без цикла, все работает. Цитата:
|
|
13.10.2014, 13:44 | #5 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
это что за код?
Код:
попробуйте такой вариант: Код:
|
13.10.2014, 14:06 | #6 | |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
применительно к Ексель, функция
x = Cells(Cells(i, 1).Left + 1).Left определена на промежутке для і от 1 до Rows.count и равно 0 для любых значений і проверить можно так: Код:
Цитата:
VBA не читает мысли, считает то, что написано, а не то, что задумано посчитать
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
|
13.10.2014, 14:14 | #7 | |
Пользователь
Регистрация: 22.04.2013
Сообщений: 17
|
x = Cells(Cells(i, 1).Left + 1).Left - эта функция работает
ActiveSheet.Shapes.AddShape(msoShap eRectangle, x, y, 90, 78).Select - тут создаю фигуру справа от ячейки Cells(i, 1) Set sha = ActiveSheet.Shapes(n) - не отрабатывала эта функция Теперь этот код работает, поправил только выделенное красным Цитата:
|
|
13.10.2014, 14:28 | #8 | |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Цитата:
Код:
Код:
я предложил упростить это сразу до Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
|
13.10.2014, 14:32 | #9 |
Пользователь
Регистрация: 22.04.2013
Сообщений: 17
|
Вы не правы, выдает значение при i=2: x=318; y=15.75
При i=3: x=318; y=30.75 ... Все то, что и надо |
13.10.2014, 14:49 | #10 |
Пользователь
Регистрация: 22.04.2013
Сообщений: 17
|
С этим все разобрался. Создает недостающие фигуры.
Теперь еще, можно ли как то вывести весь список фигур на листе. Мне надо найти лишние фигуры. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание своего класса в Delphi 7 - фигуры для шахматной доски | electric | Компоненты Delphi | 18 | 24.10.2013 15:06 |
Фигуры с++ | katu_nja | Помощь студентам | 0 | 20.04.2013 12:20 |
Создание 3d фигуры | labuda01 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 1 | 05.06.2012 22:58 |
Движение одной фигуры,вслед изменения высоты другой фигуры. | 7vlad37 | Microsoft Office Excel | 3 | 21.07.2011 18:01 |
Создание текстовых полей по условию | vandrouny | Общие вопросы .NET | 1 | 13.10.2010 14:53 |