Страницы: 1
RSS
Сохранение автоматического изменения значения ячейки
 
Здравствуйте.  
В таблице Excel B1=A1*A2.  
При каждом изменении значений в А1 и А2, произведение в В1 тоже меняется.  
Нужно, чтобы в столбец D сохранялась вся история изменений ячейки В1.  
В этом примере макроса описывается сохранение изменения ячейки B1 в столбец D:  
___________________________________________________  
Private Sub Worksheet_Change(ByVal Target As Range)  
If Target.Column = 2 And Target.Row < 2 Then  
LastRow = Cells(Rows.Count, 4).End(xlUp).Row  
LastRow = LastRow + 1  
For Each cel In [b1]
Cells(LastRow, 4) = cel.Value  
LastRow = LastRow + 1  
Next  
End If  
End Sub  
_______________  
Дело в том, что в примере значения сохраняются только, если они были изменены вручную. А нужно, чтобы сохранения происходили и тогда, когда изменения значений ячеек происходит автоматически. Помогите, как это сделать?
 
Подсказанное мне раньше решение (было для DDE обновления, но и тут будет работать): создаём на листе TextBox, линкуем его на В2. Отслеживаем изменение уже в этом TextBox. Сам TextBox прячем.
 
На самом деле ничего не поняла. От куда и куда поставить TextBox? Это какой-то объект в Excelе есть?
 
Откуда - из панели инструментов "Элементы управления".  
Куда - повторяю: на лист.
 
Попробуйте так..
 
Юрий М и Маугли, спасибо огромное!!! Помогли :)
 
Маугли, Ваш способ может привести к ошибке: если на листе есть ещё формулы, то при их вычислении будет ТАКЖЕ добавлена запись в историю, хотя контролируемые ячейки не изменялись. Тогда уж лучше использовать Worksheet_Change по А1:А2.
 
В файле этот код:  
______________________________________________  
Option Explicit  
 
Private Sub Worksheet_Calculate()  
Dim LastRow&  
LastRow = Cells(Rows.Count, "D").End(xlUp).Row  
Cells(LastRow + 1, "D") = [B1]
End Sub  
______________________________________________  
 
Здесь сохраняется, только окгда изменение происходит в ячейке B1.  
А как сделать, чтобы это действовало на ячейки от А1 до С22? И сохранялись не только в столбец D, а в D,E,F соответственно. т.е.  
ячейки А1:А22 в столбец D, В1:В22 в столбец Е и С1:С22 в столбец F.
Страницы: 1
Читают тему
Loading...