Страницы: 1
RSS
Макрос скопировать значение вместо формулы и перенести в другую ячейку
 
Доброго дня, помоги с написанием макроса который бы постоянно из одной ячейки брал результат ее расчета при помощи формулы и переносил это самое значение в другую ячейку в которую сохранял бы только значение без формул

Вот в этом примереp значение ячейки E4=А4+С4, необходимо в G4 при помощи макроса вставить только значение данного расчета (30)
Изменено: Михаил Зубков - 05.03.2021 15:43:09
 
Код
[g4]=[e4]
 
я плохо разбираюсь в макросах, как должен выглядеть полностью весь макрос?
Изменено: Михаил Зубков - 05.03.2021 15:58:59
 
Код
Sub Скопировать_значение()
    Range("G4").Value = Range("E4").Value
    'или
    '[g4] = [e4]
End Sub
 
Код
Range("G4") = Range("A4") + Range("C4")
 
Код
Sub test()
Application.ScreenUpdating = False
Range("E4").Copy
With Sheets("Лист1").Range("G4")
    .PasteSpecial Paste:=xlPasteValues
    .PasteSpecial Paste:=xlPasteFormats
End With
With Application
    .ScreenUpdating = True: .CutCopyMode = False
End With
End Sub

Нашел макрос который работает, подскажите как заставить его на постоянной основе что б ыкак только значение Е4 менялось, сразу бы включался макрос и копировал значение в D4
Изменено: Михаил Зубков - 05.03.2021 16:28:23
 
В модуль нужного листа (если у вас данные находятся на Лист1, то в модуль листа "Лист1) вставьте этот код

Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Intersect(Target, Range("E4")) Is Nothing Then Exit Sub
    Range("G4").Value = Range("E4").Value 'или другие ячейки, какие вам нужны
End Sub
Изменено: New - 05.03.2021 16:36:10
 
Не работает, вы можете шаблон в excel прислать?
 
Михаил Зубков, а вы его предоставили помогающим?  
Не бойтесь совершенства. Вам его не достичь.
 
Макрос срабатывает на событие Private Sub Worksheet_Change(ByVal Target As Range)
Вы изменяете значения в ячейке А4 или С4, вот на изменение этих ячеек и пишите макрос
Код
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("A4:C4")) Is Nothing Then
     Application.EnableEvents = False
       Range("E4").Copy
       Range("G4").PasteSpecial xlPasteValues
       Application.CutCopyMode = False
  End If
    Application.EnableEvents = True
End Sub
Страницы: 1
Наверх