|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
02.10.2008, 23:55 | #1 |
Пользователь
Регистрация: 17.07.2008
Сообщений: 19
|
Как правильно перехватывать появление новых строк на листе?
Подскажите пожалуйста как быть. В xls-файл выводятся (по DDE) строки - как возможно успевать перехватывать появление каждой новой строки, для обсчёта её? Первое что пришло на ум, это просто свободный столбец (например ближний справа от выводимых столбцов) заранее забить по всей его длине какой-нибудь формулой, например "=RC[-1]", и перехват появления новой строки осуществлять посредством процедуры Worksheet_Calculate(). Но такой метод кажется каким-то грубоватым. Да и сомнение есть не будет ли он сильно нагружать процессор. Нет ли какого-нибудь более правильного метода?
|
03.10.2008, 05:18 | #2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Может быть Вас устроит такой метод:
Запретить автоматический пересчет листа и при появлении новой строки, обрабатывать событие изменения значения ячейки Worksheet_Change(ByVal Target As Range). Тогда будет возможность до пересчета (который осуществляется в процедуре обработки этого события) подготовить данные требуемым образом.
Чем шире угол зрения, тем он тупее.
|
03.10.2008, 11:01 | #3 |
Пользователь
Регистрация: 17.07.2008
Сообщений: 19
|
Может я не совсем понял вашу мысль. Если бы я вручную вводил инфо в новые (следующие по счёту) строки, тогда да, можно было бы обрабатывать это событие через Worksheet_Change(ByVal Target As Range). Но инфо в строки (они не "добавляются" - это я неаккуратно выразился, они "заполняются") вводится внешней программой. И в этом случае Worksheet_Change(ByVal Target As Range) не получает к сожалению управления. В этом-то и загвоздка.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как в печатном листе поставить фон(за текстом печать)? | Ербол | 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 |