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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 02.10.2008, 23:55   #1
neugadal
Пользователь
 
Регистрация: 17.07.2008
Сообщений: 19
По умолчанию Как правильно перехватывать появление новых строк на листе?

Подскажите пожалуйста как быть. В xls-файл выводятся (по DDE) строки - как возможно успевать перехватывать появление каждой новой строки, для обсчёта её? Первое что пришло на ум, это просто свободный столбец (например ближний справа от выводимых столбцов) заранее забить по всей его длине какой-нибудь формулой, например "=RC[-1]", и перехват появления новой строки осуществлять посредством процедуры Worksheet_Calculate(). Но такой метод кажется каким-то грубоватым. Да и сомнение есть не будет ли он сильно нагружать процессор. Нет ли какого-нибудь более правильного метода?
neugadal вне форума
Старый 03.10.2008, 05:18   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Может быть Вас устроит такой метод:
Запретить автоматический пересчет листа и при появлении новой строки, обрабатывать событие изменения значения ячейки Worksheet_Change(ByVal Target As Range). Тогда будет возможность до пересчета (который осуществляется в процедуре обработки этого события) подготовить данные требуемым образом.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 03.10.2008, 11:01   #3
neugadal
Пользователь
 
Регистрация: 17.07.2008
Сообщений: 19
По умолчанию

Может я не совсем понял вашу мысль. Если бы я вручную вводил инфо в новые (следующие по счёту) строки, тогда да, можно было бы обрабатывать это событие через Worksheet_Change(ByVal Target As Range). Но инфо в строки (они не "добавляются" - это я неаккуратно выразился, они "заполняются") вводится внешней программой. И в этом случае Worksheet_Change(ByVal Target As Range) не получает к сожалению управления. В этом-то и загвоздка.
neugadal вне форума
Закрытая тема


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в печатном листе поставить фон(за текстом печать)? Ербол Microsoft Office Excel 5 07.08.2008 12:32
Как на Листе, удалить формулы valerij Microsoft Office Excel 4 03.07.2008 20:02
Как поменять картинку (анимация на листе) dsapa Microsoft Office Excel 10 02.06.2008 16:08
Как в паскале регистрировать время? формулы расчёта новых координат Ustim Помощь студентам 13 05.03.2008 17:44