Gary 的学生之前回答过这个问题,而且对于每张表只有 1 个单元格的情况,这种方法效果很好。如果我想镜像多个单元格,我该怎么办?我尝试了以下方法,但没有效果。我没有收到错误,但什么也没发生。顺便说一句,我是 VBA 新手。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r1 As Range, r2 As Range
Set r1 = Range("C3:D3")
Set r2 = Sheets("Flight Planning").Range("K1:K2")
If Intersect(Target, r1) Is Nothing Then Exit Sub
Application.EnableEvents = False
r2.Value = r1.Value
Application.EnableEvents = True
Dim r3 As Range, r4 As Range
Set r3 = Range("E22")
Set r4 = Sheets("Flight Planning").Range("B4")
If Intersect(Target, r3) Is Nothing Then Exit Sub
Application.EnableEvents = False
r4.Value = r3.Value
Application.EnableEvents = True
Dim r5 As Range, r6 As Range
Set r5 = Range("E24")
Set r6 = Sheets("Flight Planning").Range("C4:D4")
If Intersect(Target, r5) Is Nothing Then Exit Sub
Application.EnableEvents = False
r6.Value = r5.Value
Application.EnableEvents = True
End Sub
谢谢
答案1
我给了你一些建议,让你思考。但我给你提供这个解决方案,暂时的,这样你就可以看可能的修复。请让我知道这是否有助于您的逻辑。
如果我下面提供的临时解决方案解决了您正在处理的问题,请将框标记为已接受解决方案,以便知道此问题现已关闭。
Private Sub Worksheet_Change(ByVal 目标作为范围) 暗淡 r1 作为范围,r2 作为范围 设置 r1 = Range("C3:D3") 设置 r2 = Sheets("飞行计划").Range("K1:K2") 如果 Intersect(Target, r1) 为 Nothing 则退出子程序MsgBox "(1) 无" '请告诉我 别的 应用程序.启用事件 = False r2.值 = r1.值 应用程序.启用事件 = True 万一 Dim r3 作为范围,r4 作为范围 设置 r3 = Range("E22") 设置 r4 = Sheets("飞行计划").Range("B4") 如果 Intersect(Target, r3) 为 Nothing 则退出子程序MsgBox "(2) Nothing" '请告诉我 别的 应用程序.启用事件 = False r4.值 = r3.值 应用程序.启用事件 = True 万一 Dim r5 作为范围,r6 作为范围 设置 r5 = Range("E24") 设置 r6 = Sheets("飞行计划").Range("C4:D4") 如果 Intersect(Target, r5) 为 Nothing 则退出子程序MsgBox "(3) Nothing" '请告知我或留空 别的 应用程序.启用事件 = False r6.值 = r5.值 应用程序.启用事件 = True 万一 子目录结束
单个“ ' ”表示注释,它会注释掉右侧行的其余部分,并被忽略。它在 Excel 环境中应该会变成绿色。您可以使用单引号完全注释掉 Msgbox。