Excel VBA:动态更改工作表中另一个单元格中引用其名称的单元格值

Excel VBA:动态更改工作表中另一个单元格中引用其名称的单元格值

当活动工作表 ("sheet1") 中命名范围 ("E10:E23") 中的值发生更改时,我需要 VBA 将另一个工作表中的给定单元格 ("C7")(该工作表的名称位于刚刚更改的单元格左侧 2 列)更改为 ("sheet1") 中已更改单元格的值。例如:如果 ("Sheet1").Range("E15") 发生更改,则名称为 ("sheet1").Range("C15") 的工作表中的 ("C7") 应更改为 ("sheet1").Range("E15") 中的值。如果 ("Sheet1").Range("E8") 发生更改,则名称为 ("sheet1").Range("C8") 的工作表中的 ("C7") 应更改为 ("sheet1").Range("E8") 中的值。依此类推。该代码是什么?

答案1

此代码进入您描述为“sheet1”的工作表的工作表代码中,而不是模块中。

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    Dim ws As Worksheet
    On Error GoTo MyExit
    If Not Intersect(Target, Range("E10:E23")) Is Nothing Then
        Set ws = Sheets(Target.Offset(0, -2).Value)
    ws.Range("C7").Value = Target.Value
    End If
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    Exit Sub
MyExit:
    msgbox "Sheetname not found"
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub

我想这就是你所追求的。

贾斯汀

相关内容