我希望在两个工作表之间建立双向连接,这样我只需要在一张工作表上更改条目,另一张工作表上也会更改条目,反之亦然。
我在这里找到了一个很好的解释(我刚刚开始使用 VBA,所以很高兴它不需要我做太多改变就能发挥作用!): 两个细胞之间可以建立双向连接吗
它显示了如何使用一个单元格对另一个单元格执行此操作,但是如何使用几个不同的单元格执行此操作?例如:
工作表 1 单元格 A2 = 工作表 2 单元格 B3(反之亦然)
工作表 1 单元格 A4 = 工作表 2 单元格 B5(反之亦然)
工作表 1 单元格 A6 = 工作表 2 单元格 B7(反之亦然)
我应用此功能的单元格也包含数据验证,但无论如何,在一组单元格上,上面链接中的代码似乎仍能正常工作。
编辑:
有人在这里建议了代码(虽然评论现在似乎已经消失了)我添加了我的特定单元格/工作表,但我不确定我是否正确填充了它,因为它给了我一条错误消息:
运行时错误 1004,方法“对象范围”工作表失败
为工作表 1 添加的带有我的特定单元格等的代码:
Private Sub Worksheet_change(ByVal Target1 As Range)
If Not Intersect(Target1, Range("F9:F12")) Is Nothing Then
Worksheets("sheet 2").Range("F" & Target.Row + 1).Value = Target1.Value
End If
End Sub`
对于工作表 2:
Private Sub Worksheet_change(ByVal Target2 As Range)
If Not Intersect(Target2, Range("F6:F9")) Is Nothing Then
Sheets("sheet 1").Range("F" & Target2.Row - 1).Value = Target2.Value
End If
End Sub
有关具体细节的更多信息,以防这可能导致问题。
我想要:
工作表 1 F9 与工作表 2 F6 匹配,
工作表 1 F12 与工作表 2 F9 匹配
它们都包含镜像相应单元格的数据验证列表。
它们与其他单元格合并:
工作表 1 - F9:H10
工作表 1 - F12:H13
工作表 2 - F6:G7
工作表 2 - F9:G10
答案1
在模块“sheet 1”中输入以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo eh
If Not Intersect(Target, Me.Range("F9,F12")) Is Nothing Then
Application.EnableEvents = False
ThisWorkbook.Sheets("sheet 2").Range("F" & Target.Row - 3).Value = Target.Value
eh:
Application.EnableEvents = True
If Err <> 0 Then MsgBox Err & " " & Err.Description, , "Error in Worksheet_Change event, sheet 1"
End If
End Sub
在模块“sheet 2”中:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo eh
If Not Intersect(Target, Me.Range("F6,F9")) Is Nothing Then
Application.EnableEvents = False
ThisWorkbook.Sheets("sheet 1").Range("F" & Target.Row + 3).Value = Target.Value
eh:
Application.EnableEvents = True
If Err <> 0 Then MsgBox Err & " " & Err.Description, , "Error in Worksheet_Change event, sheet 2"
End If
End Sub