在两个不同的工作表中构build一对镜像单元

我正在尝试在工作簿的两张不同的工作表上创build一对单元格,以便将任何input到一个单元格的内容都复制到另一个单元格中。 如果这是一种方式,那显然是微不足道的。 不过,我想让链接是双向的。 这将涉及VBA脚本,我是一个新手的东西。 有没有人有一些关于如何学习我需要知道的指针? 我有谷歌search,但只是产生了一些代码示例没有解释,我不想把代码,我不明白。

假设你有Sheet1和Sheet2,他们的名字就是这个名字。

  1. 在Sheet1中,转到开发人员并单击查看代码。 您应该查看Sheet1的空白编码表
  2. 在编码区左侧的下拉列表中,selectWorksheet而不是默认的(General)
  3. 在右边下拉。 select更改。 您将自动获得以下信息:
Private Sub Worksheet_Change(ByVal Target As Range) End Sub 

Sheet1中任何单元格的更改都会触发上面的代码。

已更改的单元被称为目标范围。

您可以使用Target.Address和Target.Value轻松识别目标范围的地址和内容。 然后,您可以使用此地址和值来更新Sheet2。

 Private Sub Worksheet_Change(ByVal Target As Range) ThisWorkbook.Sheets("Sheet2").Range(Target.Address).Value = Target.Value End Sub 

要将Sheet2中的数据复制到Sheet1,只需重复上述步骤,但在Sheet2中。

 Private Sub Worksheet_Change(ByVal Target As Range) ThisWorkbook.Sheets("Sheet1").Range(Target.Address).Value = Target.Value End Sub 

但是,如果更改为Sheet1将触发对Sheet2的更改,而这又会触发对Sheet1的更改,则更改将发生无限期,这是没有意义的。 因此,只有当Sheet1和Sheet2上的值不同时,我们才需要添加一些代码来应用更改。 如果值相同,则不需要应用更改。 因此,Sheet2的代码应该如下所示:

 Private Sub Worksheet_Change(ByVal Target As Range) If ThisWorkbook.Sheets("Sheet1").Range(Target.Address).Value <> Target.Value Then ThisWorkbook.Sheets("Sheet1").Range(Target.Address).Value = Target.Value End If End Sub 

你会使用一对事件macros来完成这个。 这是一个你可以适应的例子:

镜像变化