Время доброго всем , такой вопрос . В столбце А1:A60 имеются цифры поступающие по DDE , можно ли сделать так что бы отображалось в столбце В , на сколько было изменение в ячейках А1:A60 .?
На сколько изменилось число в ячейке относительно предыдущего
23.03.2018 15:24:36
|
|
|
|
23.03.2018 15:27:00
|
|||
|
|
23.03.2018 15:38:01
|
|||
|
|
23.03.2018 15:47:28
yrikovsy, это только макросом можно... ну или вы перед тем как менять значение в таблице копируете предыдущие ( результат ) куда-то
Изменено:
Не бойтесь совершенства. Вам его не достичь.
|
|
|
|
23.03.2018 15:50:57
|
|||
|
|
23.03.2018 15:54:56
yrikovsy, ну говорю макросом только может кто-то и поможет, но с примером файла)
Не бойтесь совершенства. Вам его не достичь.
|
|
|
|
23.03.2018 16:03:33
Пробовал макрос подобрать , не получилось .
|
|
|
|
23.03.2018 16:50:17
Anchoret , работает при ручном воде , а вот при обновление с DDE нет.
Вот что нашёл по этому поводу , Worksheet_Change не работает, если данные поступают по DDE. Самый оптимальный вариант - создать текстбокс из элементов ActiveX, в LinckedCell указать адрес ячейки, изменение которой надо отслеживать и в событие Change текстбокса записать нужный код. Тогда поступление данные по DDE тоже будет обрабатываться. |
|
|
|
23.03.2018 17:24:23
Все правильно нашли. Осталось создать текстбокс и перенести приведенный выше код в него. Должно получиться что-то вроде:
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
|
|||
|
|
23.03.2018 17:33:11
Возможно проще сделать макрос который будет копировать значение ячеек и вставлять их в тот столбец ? Что то вроде такого, Sub Копия_числа() '
' Копия_числа Макрос'' Application.Run "'Прайс.xls'!myMacro" For i = 7 To 66 Range("AW" & i).Value = Range("AJ" & i) Next End Sub Выдаёт ошибку данный макрос.
Изменено: |
|
|
|
23.03.2018 17:44:33
Спасибо большое , но данный пример не работает , или я что то делаю не так.
Изменено: |
|
|
|
23.03.2018 18:03:46
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
|
|||||
|
|
23.03.2018 18:13:47
Что то не получается запустить
|
|
|
|
23.03.2018 18:16:55
А у меня получается, все работает. Что именно не получается у Вас? Не срабатывает? Проверьте, не оставили ли включенным режим конструктора после создания TextBox-а - он будет блокировать макросы.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
|
|
|
|
23.03.2018 18:26:17
А у меня нет , не работает , даже если в ручную вожу данные на этом коде не пойму по чему так.
|
|
|
|
23.03.2018 18:31:13
Приложил усовершенствованный пример - попробуйте. Должен срабатывать. При использовании TextBox-а код отмены может срабатывать не так, как ожидалось.
Обращаю внимание, что код записан и в модуле листа и в стандартном модуле.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
|
|
|
|
23.03.2018 18:36:08
Зато загуглил, что такое DDE)
|
|
|
|
23.03.2018 18:41:47
USER=6]Дмитрий Щербаков[/USER], когда подаю данные с DDE . пример =ДРВ("tos.rtd"; ; "VOLUME"; "/6A") , вставляется значение , а обновляться перестаёт , данные которые подал они пропадают с ячейки .
|
|
|
|
23.03.2018 18:53:14
Так у Вас значения формулой попадают на лист? Т.е. в столбце А - формулы, которые тянут DDE? Там несколько иной принцип у них. Но попробуйте заменить процедуру в моем файле так:
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
|
|||
|
|
23.03.2018 18:59:16
Именно так , вот что выдало
|
|
|
|
23.03.2018 19:03:45
Ну это уже Ваши проблемы - Вы скопировали код без буквы S в названии:
ub SetChanges() а у меня оно на месте: Sub SetChanges()
Изменено:
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
|
|
|
|
23.03.2018 19:20:58
Дмитрий Щербаков. Да извиняюсь не заметил что не скопировал , что то не могу разобраться с последним макросом
|
|
|
|
23.03.2018 19:32:46
Изменено:
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
|
|||
|
|
23.03.2018 19:35:21
Дмитрий Щербаков, Нет последний код не работает с формулой , в ручном воде работает.
|
|
|
|
23.03.2018 19:47:32
yrikovsy, лучше объясните как дынные попадают на лист Excel. Сразу в ячейки, или через цепочку формул с другого листа или диапазона?
|
|
|
|
23.03.2018 19:49:42
Anchoret, Могу вставить и просто формулой которая тянет данные из программы , могу вставить с другого листа , пробовал всяко , в ручном воде работают , а с остальным проблема .
|
|
|
|
23.03.2018 19:51:56
Дмитрий Щербаков, Вставил последний макрос в свой файл , он работает если запускаю макрос вручную .
|
|
|
|
23.03.2018 20:05:39
Знаете в чем проблема...В том, что данные по формуле попадают на лист. И приведенный код становится не совсем рабочим. Когда мы возвращаем прежние данные на лист, то это затрет формулу. Если возвращать формулу - она пересчитается тут же и будет тянуть данные с DDE заново. И если они там изменятся - то данные не совпадут.
Пришлось кардинально пересмотреть алгоритм. При первом запуске ничего не произойдет, просто будет запоминание полученных из DDE значений. А при следующем пересчете уже будет вычисление разницы текущих показаний и предыдущих.
Изменено:
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
|
|
|
|
23.03.2018 20:10:44
Дмитрий Щербаков, Работает
|
||||
|
|
|||