更改另一个单元格时如何使用VBA复制单元格并将其粘贴到其他单元格中作为值

时间:2019-01-24 15:41:44

标签: excel vba

我有一个表,其中用户将更改列L。 M列返回基于L列之外的vlookup的值。我正在寻找一些VBA代码,该代码会在L列中的任何单元格发生更改时均会注意到,然后从M列中的Vlookup复制结果并将其粘贴为N列中的值

例如: 用户将值更改/添加到单元格L3中 使用L3根据vlookup更新单元格M3 VBA在M3中复制新值 VBA作为值粘贴到N3中

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

使用Worksheet.Change EventApplication.Intersect method来检查特定单元格是否已更改。

使用Range.Offset property从更改后的单元格移动到要写入值的另一个单元格。

Private Sub Worksheet_Change(ByVal Target as Range) 
    Dim ChangedCells As Range
    Set ChangedCells = Intersect(Target, Target.Parent.Range("L:L")) 

    Dim Cell As Range

    If Not ChangedCells Is Nothing Then
        'ChangedCells contains all cells that changed and are in column L
        For Each Cell In ChangedCells 'loop through cells
            Cell.Offset(ColumnOffset:=1).Value = "aaa" 'offset moves from L to M
        Next Cell
    End If
End Sub