如何同步多个Excelinput单元格
这个问题在2010年被问及回答,但是当我按照古老的Buggabill先生的指示,然后运行macros(通过编辑目标单元格),Excel立即崩溃。 代码如下所示:
Private Sub Worksheet_Change(ByVal target As Range) If target.Address = "$A$1" Then ActiveWorkbook.Worksheets("Sheet2").Range(target.Address).Value = target.Value End If End Sub
我在Sheet1下创build了一个版本的macros(将Sheet2上的目标值推送到A1)和另一个版本的Sheet2下的macros(反过来)。 只有一个macros就位,这工作正常,但我的意图是能够在任何一个工作表上input一个值,并有新的价值传播到两个input单元格。 Excel崩溃,因为它是一个循环引用,对不对? 有没有解决的办法?
我怀疑这不是循环引用,而是堆栈溢出;)
您可能会考虑closures执行内部macros的事件。
Application.EnableEvents = False ... Application.EnableEvents = True
这样,另一个事件处理程序不会在您将值插入到另一个表中时被调用。
只要在第一个里面添加另一个。
Private Sub Worksheet_Change(ByVal target As Range) If target.Address = "$A$1" Then If ActiveWorkbook.Worksheets("Sheet2").Range(target.Address).Value <> target.Value ActiveWorkbook.Worksheets("Sheet2").Range(target.Address).Value = target.Value End If End If End Sub
这应该阻止它试图执行时,两个值已经匹配。 在更新之前检查它们是否相同。