![是否有可能在两个不同的工作表中的两个单元格之间建立双向连接?](https://linux22.com/image/1548920/%E6%98%AF%E5%90%A6%E6%9C%89%E5%8F%AF%E8%83%BD%E5%9C%A8%E4%B8%A4%E4%B8%AA%E4%B8%8D%E5%90%8C%E7%9A%84%E5%B7%A5%E4%BD%9C%E8%A1%A8%E4%B8%AD%E7%9A%84%E4%B8%A4%E4%B8%AA%E5%8D%95%E5%85%83%E6%A0%BC%E4%B9%8B%E9%97%B4%E5%BB%BA%E7%AB%8B%E5%8F%8C%E5%90%91%E8%BF%9E%E6%8E%A5%EF%BC%9F.png)
我想连接两个 Excel 表之间的两个单元格,并且如果两个单元格中的任意一个单元格中都输入了数据,则更新这两个单元格。
- 工作表 1 中的单元格 A4。
- 工作表 2 中的单元格 B7。
假设在工作表 1 中的单元格 A4 中输入了 100,则工作表 2 中的 B7 应该更新为 100。
如果工作表 2 中的单元格 B7 为 80,则工作表 1 中的单元格 A4 也应该是 80。
我正在使用 Excel 2013 和 2016两个版本。
答案1
如果您想要在单元格或单元格区域、工作表甚至工作簿之间建立动态链接以进行双向数据输入,那么 VBA 是唯一的解决方案。
您需要在两个表中使用以下 VBA 代码:
怎么运行的:
- 按下Alt+F11 或右键单击工作表电视背景。
- 从弹出菜单中单击“查看代码”。
- 在 VB 编辑器中复制并粘贴相应表格。
- 将工作簿另存为米acro 已启用。
在工作表 1 中:
Private Sub Worksheet_change(ByVal Target As Range)
If Not Intersect(Target, Range("A4")) Is Nothing Then
If Target = Range("A4") Then
Sheets("Sheet2").Range("B7").Value = Target.Value
End If
End If
End Sub
在工作表 2 中:
Private Sub Worksheet_change(ByVal Target As Range)
If Not Intersect(Target, Range("B7")) Is Nothing Then
If Target = Range("B7") Then
If Sheets("Sheet1").Range("A4").Value <> Target.Value Then
Sheets("Sheet1").Range("A4").Value = Target.Value
End If
End If
End If
End Sub
注意:
- 如果两个单元格中的值不相似,则 Sheet 2 中的代码将更新 Sheet 1。
- 如果你不需要这个,只需删除 If 语句行。