Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2010, 16:08   #1
женя2010
Пользователь
 
Регистрация: 16.04.2010
Сообщений: 49
По умолчанию Очистка линии

Пишу на ВБА. В конце рисуеться линия, в зависимости от значений. А когда вношу новые значения линия рисуеться новая ,а старая остаеться .Как убрать старую?
женя2010 вне форума Ответить с цитированием
Старый 20.04.2010, 16:35   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

С такими вопросами обращайтесь на форум телепатов.

А если хотите, чтобы вам помогли на этом форуме, выкладывайте пример файла с кодом и линиями.
EducatedFool вне форума Ответить с цитированием
Старый 20.04.2010, 17:17   #3
женя2010
Пользователь
 
Регистрация: 16.04.2010
Сообщений: 49
По умолчанию

))я просто думал что такой вопрос токо ламеры задают...
l1 = [C30].Left
l2 = l1 + d1 + d2 + d3 + d4
v = [C30].Top - [A6]
ActiveSheet.Shapes.AddLine(l1, v, l2, v).Select
Selection.ShapeRange.Line.Weight = 1.5

таким образом я рисую линию....а потом когда ввожу новые даные, то эта линия не просто меня ет свое место, рисуеться новая , а старая остаеться....я думаю что есть какаето простенькая команда которая удалюет старую линию, перед выполнением програмы.а какая?))))
женя2010 вне форума Ответить с цитированием
Старый 20.04.2010, 18:41   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

А мне помог бубен
Код:
Private Sub CommandButton1_Click()
Dim she As Worksheet

Set she = Sheets("Лист1")
Dim shp As Shape
Set shp = she.Shapes.AddLine(100, 10, 20, 12)
shp.Name = "л1"
shp.Line.Weight = 1.5
Set shp = she.Shapes.AddLine(100, 100, 20, 120)
shp.Name = "л2"
shp.Line.Weight = 1.5

she.Shapes("л1").Delete

End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 20.04.2010, 18:57   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

не исключаю, что вот так можно снести последнюю нарисованную линию:
ActiveSheet.Shapes(ActiveSheet.Shap es.Count).delete
это предположение. Пробуйте, проверяйте. т.е. прежде чем рисовать линию - удаляем предыдущую, основываясь на предположении что она последняя в коллекции Shapes.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 20.04.2010, 22:49   #6
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Совет doober представляется самым верным: присвоить имя построенной линии и удалять по имени. Заодно посмотрите, как правильно работать с объектами Shape
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 21.04.2010, 04:38   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А по-моему, в данном случае есть смысл не удалять и рисовать, а вырезать и вставлять.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 21.04.2010, 05:11   #8
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

а зачем вооюще удалять/рисовать и/или вырезать/вставлять? Не проще ли просто переместить?
maksim_serg вне форума Ответить с цитированием
Старый 21.04.2010, 10:19   #9
женя2010
Пользователь
 
Регистрация: 16.04.2010
Сообщений: 49
По умолчанию

ActiveSheet.Shapes(ActiveSheet.Shap es.Count).delete - работает отлично!

Всем огромное спсибООООООООО!
женя2010 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вертикальные линии в отчете Nikolaeva БД в Delphi 3 30.07.2019 09:45
Как изменить цвет линии? _Studentka_ Общие вопросы .NET 9 05.04.2010 18:28
динамические линии DIMEDROL1985 Помощь студентам 2 24.01.2010 00:37
очистка get Gromsky PHP 1 19.08.2009 19:15
ЛИНИИ УРОВНЯ (ПАСКАЛЬ) mens-evgenij Помощь студентам 1 22.05.2009 09:50