在两个不同的工作表中构build一对镜像单元
我正在尝试在工作簿的两张不同的工作表上创build一对单元格,以便将任何input到一个单元格的内容都复制到另一个单元格中。 如果这是一种方式,那显然是微不足道的。 不过,我想让链接是双向的。 这将涉及VBA脚本,我是一个新手的东西。 有没有人有一些关于如何学习我需要知道的指针? 我有谷歌search,但只是产生了一些代码示例没有解释,我不想把代码,我不明白。
假设你有Sheet1和Sheet2,他们的名字就是这个名字。
- 在Sheet1中,转到开发人员并单击查看代码。 您应该查看Sheet1的空白编码表
- 在编码区左侧的下拉列表中,selectWorksheet而不是默认的(General)
- 在右边下拉。 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来完成这个。 这是一个你可以适应的例子:
镜像变化