镜像单元格:有意的循环引用

Mirrored Cells: Intentional Circular Referencing

我想构建一个具有 "Mirrored Cells" 的 sheet,即我希望多个单元格显示相同的值,并且该值在 all 中发生变化单元格,如果它在 any 单元格中发生变化。

例如:

Cell A1: "Apple"
Cell A2: "Apple"
Cell A3: "Apple"

如果我将 A3 更改为 "Banana",我希望我的 sheet 在单元格 A1、A2 和 A3 中显示 "Banana"。我知道如果我设置 A1 = A3 和 A2 = A3 我可以做到这一点。但是,我还希望能够将 A1 更改为 "Carrot" 并让所有三个单元格显示 "Carrot"。我不知道如何强制 excel 对三个单元格的集合进行循环引用,其中的值可以通过寻址任何单元格来更改。

P.S。 - 我所描述的是我希望 "appear" 对那些只是想更新 sheet 的人的行为。如果有人有想法编写一个 VBA 可以自动处理此更新的脚本(即每次更改单元格值时都可以在幕后自动调用),我很乐意编写一个并使用它,编程属于每个循环引用集的单元格直接进入脚本。

编辑:我实现了@silentsurfer 提供的脚本,它在一个简单的 worsheet 上运行良好,值在 A1:A3 中。然后我实现了@pnuts 建议的命名范围功能。

在我的工作sheet中,我选择了三个单元格(C3、C5、C7)并将它们设置为命名区域("config3P")。我只是想让@silentsurfer 的脚本来监视这三个单元而不是 A1:A3,所以这是更改后的代码:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c3P As Range
Dim xlCell As Range

Set c3P = Range("config3P")
Application.EnableEvents = False

If Not Intersect(Target, c3P) Is Nothing Then
    For Each xlCell In c3P
        xlCell.Value = Target.Value
    Next xlCell
End If

Application.EnableEvents = True

End Sub

尝试将此粘贴到 VBA 编辑器中的工作表代码页:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim chngRange As Range
    Dim xlCell As Range

    Set chngRange = Range("A1:A3")
    Application.EnableEvents = False

    If Not Intersect(Target, chngRange) Is Nothing Then
        For Each xlCell In chngRange
            xlCell.Value = Target.Value
        Next xlCell
    End If

    Application.EnableEvents = True

End Sub