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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2011, 22:46   #1
Asblue
Пользователь
 
Аватар для Asblue
 
Регистрация: 21.10.2010
Сообщений: 78
Восклицание Сохранение истории изменения значений ячеек в таблице Excel

Здравствуйте.
В таблицу Excel - Книга1/Лист1 экспортируются данные из таблицы программы QUIK.
Данные из QUIK отображаются в ячейках A1, A2, A3.
Если в таблице QUIK значения меняются, то такие же изменения автоматически происходят в таблице Excel в ячейках A1, A2, A3.
История изменения значений в ячейках А1, А2, А3 столбца "А" сохраняется в столбце "С".
Т.е. нужно, чтобы при каждом изменении данных в "А" они переносились в "С" и при этом каждый раз в новые строки, примерно так:
А1=С1
А2=С2
А3=С3
А когда значение в ячейках А меняются, т.е. новое значение А1 не= предыдущему значению А1 и т.д., то
А1=С1+3=С4
А2=С5
А3=С5 и т.д.
Подскажите пожалуйста, как это можно реализовать?

Вот есть пример макроса, но тут что-то не очень всё понятно...

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Column = 1 And Target.Row < 4 Then
 LastRow = Cells(Rows.Count, 3).End(xlUp).Row
 LastRow = LastRow + 1
 For Each cel In [a1:a3]
 Cells(LastRow, 3) = cel.Value
 LastRow = LastRow + 1
 Next
 End If
 End Sub
zxcxzczx.jpg
Asblue вне форума Ответить с цитированием
Старый 25.10.2011, 23:20   #2
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

А что не нравится?
Код:
Private Sub Worksheet_Change(ByVal Target As Range)'при изменении значений
 If Target.Column = 1 And Target.Row < 4 Then'если изменения в 1 столбце с 1 по 3 строки
 LastRow = Cells(Rows.Count, 3).End(xlUp).Row + 1'находим первую пустую ячейку с 3 столбце
 For Each cel In [a1:a3]'по всем ячейкам диапазона A1:A3
 Cells(LastRow, 3) = cel.Value ' переписываем в столбец 3 в свободную ячейку
 LastRow = LastRow + 1'перевод на следующую свободную ячейку
 Next'
 End If'
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 26.10.2011, 10:27   #3
Asblue
Пользователь
 
Аватар для Asblue
 
Регистрация: 21.10.2010
Сообщений: 78
По умолчанию

Да, всё норм, спасибо))
Asblue вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выделение ячеек в таблице word из VBA excel Святой Дьявол Microsoft Office Excel 5 12.11.2022 00:57
не сохраняются изменения в таблице pobedin БД в Delphi 16 14.07.2010 17:14
Сохранение и загрузка в файл текстовых значений и значений типа Boolean krikaved Общие вопросы Delphi 1 16.03.2010 07:53
Связи ячеек в таблице MS Excel LIEN Microsoft Office Excel 2 29.09.2009 09:52
5 максимальных значений в сводной таблице в новом Excel Катик7 Microsoft Office Excel 2 03.09.2009 17:26