Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Из сторонней программы в Excel передаются числовые значения с интервалом 5 сек. в ячейку A1 т.е значение в ячейке каждый раз обновляется. Помогите написать макрос, чтобы Excel заносил каждое новое число в ячейку ниже (происходило бы накапливание данных - каждое новое число заносилось в свою ячейку тем самым заполнялся столбец). Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 07:49 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Можно попробовать такой вариант. К сожалению не записал автора рекомендаций, но, неизвестный, респект тебе:) ---------- отлавливание внешнего изменения ячейки 1. Откройте Excel 2. Кликните правой клавишей мыши по свободному пространству на линии меню Excel 3. Удостоверьтесь, что линия Control Toolbox отмечена птичкой 4. На панели Control Toolbox кликните по иконочке с молоточком и гаечным ключом 5. Найдите в появившемся списке RefEdit.ctrl 6. Кликните по этому имени 7. Положите его курсором на лист Excela (проведите по листу курсором с нажатой клавишей мыши) 8. Кликните правой клавишей по положенному на лист контролю 9. Найдите в меню линию Properties 10. Кликните по ней 11. Найдите в списке свойств свойство LinkedCell 12. Напечатайте во второй колоночке A1 13. Закройте панель свойств, кликнув на крестик в правом верхнем углу панели. 14. На панели Control Toolbox кликните по иконочке с угольником, линейкой и карандашом 15. Нажмите Alt-F11 16. В кодовом окне для того листа, на который вы посадили RefEdit, откройте левый верхний комбобокс 17. Выберете RefEdit1 18. В кодовом окне для того листа, на который вы посадили RefEdit, откройте правый верхний комбобокс 18. Выберете Change 19. Внутри процедуры события RefEdit1_Change напишите: Range("B1").Value = Range("A1").Value 20. Вернитесь в лист Excel 21. При необходимости, на панели Control Toolbox кликните по иконочке с угольником, линейкой и карандашом еще раз, чтобы выйти из режима дизайна, если вы еще в нем. 22. Напечатайте что-нибудь в клеточку A1 23. Наблюдайте за содержимым B1 --------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 08:23 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
sergeyvg, спасибо большое! очень доходчиво написано. но обновление идет только в одной ячейке, а как сделать чтобы каждое новое значение записывалось в новую ячейку т.е. чтобы формировался столбец из значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 14:47 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Алекс82, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 15:33 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Ну и это перерабатываем так: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 15:42 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Ну и пример наконец :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 15:51 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Hugo121, ну просто супер! Всё отлично работает. Спасибо Вам большое за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 16:07 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
в ручном режиме работает отлично, но с OPCtoDDE при получении нового значения обновляются все ячейки и в них появляются одни и те же числа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 16:19 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Алекс82, не верю :) А так?: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 16:36 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Hugo121, попробывал: http://imagepost.ru/?v=150/Clipboard01.gif Модератор: Рекламные ссылки будут удаляться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 16:56 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Алекс82, а какой лист в этот момент активен? Если другой, код надо чуть подправить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:05 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Может чуть перегнул, но для надёжности: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:09 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Hugo121, активен лист Sheet1 модератору: рекламные ссылки у меня уже прописаны в сообщении, я их не вставлял. Каждый раз приходится удалять в предыдущем сообщении забыл удалить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:11 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Алекс82, а это вирус...!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:12 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Hugo121Алекс82, а это вирус...!!! +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:14 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Hugo121Может чуть перегнул, но для надёжности: Код: plaintext 1. 2. 3. не, та же ошибка появляется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:15 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Алекс82, я бы у Вас файл попросил, но теперь уж лучше сперва полечитесь ... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:17 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Hugo121Алекс82, я бы у Вас файл попросил, но теперь уж лучше сперва полечитесь ... :) ясно...nod32 всё же... пока я проверяю систему может подскажите другой путь (не используя стороннюю программу OPCtoDDE тем более платную) для извлечения данных с opc-сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:25 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Алекс82, Я пас насчёт замены. Так может после лечения и это заработает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:31 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Hugo121, похоже проблема в том что у меня в ячейке A1 стоит формула которая связывает OPC-сервер =OPCtoDDE|OPCDataStore.TOPCElemerServer.2!'COM1.ИРТ 5920(30)[1].Канал 1' и при остановке сервера получается картина, т.е. копируются постоянно не числа, а эта формула поэтому во всех ячейках одни данные. может как то преобразовывать в числа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 17:58 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
извините, опять проглядел ссылки к предыдущему сообщению, такая картина получается при остановке OPC-сервера http://imagepost.ru/?v=150/pBlUvnAE7r_Clipboard01.gif ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 18:01 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Алекс82, я думал, у вас значение ячейке присваивается макросом. В этом случае, может завести глобальную переменную, и отслеживать её изменение, и писать в столбец только изменённые данные, если конечно так можно по задаче, т.е. если повторов быть не должно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 18:13 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Hugo121, помогите пожалуйста добавить вторую ячейку B1 в макрос (те же функции как и у A1), чтобы можно было бы снимать данные со второго прибора в одном листе Excel. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 19:28 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Алекс82, так заработало? А то зачем аналогично делать вторую ячейку, если эта не работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 22:10 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Сделал, раз нет ответа :) Добавил ещё один RefEdit и код к нему. В принципе, всё аналогично, только 1 заменил на 2. И ещё добавил фильтр на цифровые значения, т.е. на текст реагировать не будет, так что может этой поправки и хватит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2010, 00:24 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
да заработало, с файлом Refedit_Change_Hidden.xls обновление заработало нормально. с файлом Refedit_Change_Hidden2.xls обновление нет т.е. не работает функции для A1 и B1. может исключить фильтр ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2010, 10:48 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
попытался изменить код в Refedit_Change_Hidden.xls (создал предварительно второй RefEdit.Ctrl назвал RefEdit2 указал ссылку на ячейку B1) вот что получилось: Option Explicit Private Sub RefEdit1_Change() Dim iLastRow As Long iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 [a1].Copy Cells(iLastRow, 1) End Sub Private Sub RefEdit2_Change() Dim iLastRow As Long iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 [B1].Copy Cells(iLastRow, 1) End Sub но похоже что то не так сделал, не работает макрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2010, 11:00 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
интуитивно изменил макрос, на Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. вроде обновляется в двух ячейках. только не пойму что означает [a1] = 10? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2010, 11:12 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Алекс82, привет! В выходной работаем? :) Sub tt() - это я тестил, как будет работать, если кодом данные заносить, так что это для работы лишнее. iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 - это по первому столбцу определяем последнюю ячейку, соотв. сменив на 2 - проверим по втрому. Фильтр можешь отключить, удалив строку If IsNumeric(ThisWorkbook.Sheets(1).RefEditN) Then _ Так там не цифры заносятся в ячейки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2010, 19:39 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Hugo121, пришлось сменить программу которая передаёт данные с OPC сервера в ячейки Excel - и всё заработало! Насчёт фильтра удалил, но опять ошибка 13. Ладно, не буду отвлекать Вас, тем более, что вроде пока работает с переправленным первоначальным макросом. Ещё раз огромное спасибо! Чтобы написать этот код мне бы месяц понадобился... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2010, 08:46 |
|
||
|
Накапливание данных
|
|||
|---|---|---|---|
|
#18+
Алекс82, ну и хорошо. По поводу втрого кода - мне он больше нравится. Там может дело в CDbl (ThisWorkbook.Sheets(1).RefEdit2) - если у Вас данные текстовые, или цифры, но десятичный разделитель не совпадает с разделителем Экселя, то CDbl не сработает. Наладить несложно - просто CDbl убираем, и получаем в ячеках текст из RefEdit. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2010, 11:59 |
|
||
|
|

start [/forum/topic.php?all=1&fid=60&tid=2159383]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
24ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 150ms |

| 0 / 0 |
