我在三张工作表中有三个单元格:工作表 1 中的单元格 A1、工作表 2 中的单元格 A2 和工作表 3 中的单元格 A3。我希望这三个单元格中的值始终相等。这意味着任何一个单元格的更新都会影响其他单元格。我尝试编写一个宏,每当单元格 A1 发生变化时,它都会更新单元格 A2 和 A3 中的值。这似乎很有效。当我尝试对单元格 A2 执行相同操作时,宏会产生运行时错误。这两个宏似乎创建了一个无限循环;用户更改单元格 A1 中的值,宏 1 更新单元格 A2,宏 2 检测到单元格 A2 中的更改并更新单元格 A1,宏 1 检测到单元格 A1 中的更改,循环继续... 谁能提供 VBA 代码来实现这种行为(始终 A1=A2=A3)及其中的逻辑。我使用的是 Microsoft Excel 2016 版本。
答案1
为了使事件过程不会不断调用自身并陷入无限循环,请在设置其他单元格之前使用此 VBA 命令来禁用事件过程触发:
Application.EnableEvents=False
要再次启用它们:
Application.EnableEvents=True
用这两个命令包围有问题的代码,以避免循环。