Добрый день. Такая вот задача. Есть столбец А с формулами. Нужно чтобы в соседнем столбце (В), при добавлении формулы в стобце А, появлялось автоматически значение (например в А2 появилась формула, тогда в В2 должно появиться значение). Нужно это для того, чтобы значения сохранялись при потере связей в формулах (формулы ссылаются на другие книги). Листов очень много, поэтому нужно чтобы это было автоматически.
Добрый день. Такая вот задача. Есть столбец А с формулами. Нужно чтобы в соседнем столбце (В), при добавлении формулы в стобце А, появлялось автоматически значение (например в А2 появилась формула, тогда в В2 должно появиться значение). Нужно это для того, чтобы значения сохранялись при потере связей в формулах (формулы ссылаются на другие книги). Листов очень много, поэтому нужно чтобы это было автоматически.drugojandrew
Пока что, самое простое, что пришло в голову (вставить в код листа) [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) With Target If .Count = 1 And (.Column = 12 Or .Column = 13) Then Cells(.Row, 2) = Cells(.Row, 1) End With End Sub
[/vba] UPD Возможно проще будет делать единовременное присвоение ячейкам в столбце В значений из соответствующих ячеек столбца А [vba]
Код
Sub reserv() Application.ScreenUpdating = False With Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row) .Offset(, 1).Value = .Value End With Application.ScreenUpdating = True End Sub
[/vba] Можно осуществить это ручным запуском или, например, при закрытии файла
Пока что, самое простое, что пришло в голову (вставить в код листа) [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) With Target If .Count = 1 And (.Column = 12 Or .Column = 13) Then Cells(.Row, 2) = Cells(.Row, 1) End With End Sub
[/vba] UPD Возможно проще будет делать единовременное присвоение ячейкам в столбце В значений из соответствующих ячеек столбца А [vba]
Код
Sub reserv() Application.ScreenUpdating = False With Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row) .Offset(, 1).Value = .Value End With Application.ScreenUpdating = True End Sub
[/vba] Можно осуществить это ручным запуском или, например, при закрытии файлаМВТ
Сообщение отредактировал МВТ - Воскресенье, 30.08.2015, 16:38
МВТ, спасибо. Второй работает, только не могу понять, что нужно изменить, чтобы копировать не из столбца А в столбец В, а скажем из L в D. А с первым макросом что-то у меня не ладиться - запускаю его, но вылазит окно с предложением выбрать макрос. Я не понимаю как вставить макрос с началом "Private Sub..." - уже 3 таких пробовал, но не получается.
МВТ, спасибо. Второй работает, только не могу понять, что нужно изменить, чтобы копировать не из столбца А в столбец В, а скажем из L в D. А с первым макросом что-то у меня не ладиться - запускаю его, но вылазит окно с предложением выбрать макрос. Я не понимаю как вставить макрос с началом "Private Sub..." - уже 3 таких пробовал, но не получается.drugojandrew
Первый макрос надо вставить в код рабочего листа и он будет запускаться автоматически при изменениях в ячейках. Что касается, перноса из столбца L в D, то достаточно поменять[vba]
Код
With Range("L2:L" & Cells(Rows.Count, 1).End(xlUp).Row) .Offset(, -8).Value = .Value End With
[/vba] Если Вам надо начинать не со 2-й строки, а, например, с 4-й, то [vba]
Первый макрос надо вставить в код рабочего листа и он будет запускаться автоматически при изменениях в ячейках. Что касается, перноса из столбца L в D, то достаточно поменять[vba]
Код
With Range("L2:L" & Cells(Rows.Count, 1).End(xlUp).Row) .Offset(, -8).Value = .Value End With
[/vba] Если Вам надо начинать не со 2-й строки, а, например, с 4-й, то [vba]