excel vba计算代码不会计算合并单元格中的某些公式

我用不同的表格计算公式:

Sub Calculate_Formulas_otherSheets() Dim Sheet As Worksheet For Each Sheet In ActiveWorkbook.Sheets If Sheet.Name Like "*" & strSearch & "_A" Then Sheets(Sheet.Name).Calculate End If Next For Each Sheet In ActiveWorkbook.Sheets If Sheet.Name Like "*" & strSearch & "_B" Then Sheets(Sheet.Name).Calculate End If Next End Sub 

在这些表中,有三个公式在合并的单元格中。
公式1在AY3

 =RIGHT(CELL("filename");LEN(CELL("filename"))-FIND("]";CELL("filename"))) 

配方2在AZ3

 =IFERROR(RIGHT(LEFT($AY3;FIND("_";$AY3)-4);2);"") 

公式3在BA3中

 =IFERROR(RIGHT(LEFT($AY3;FIND("_";$AY3)-3);1);"") 

如果我手动计算它们,一切都很完美。 但是当我通过上面的代码来做的时候,他们不会被计算出来。 除了这三个之外,表中的其他公式都会被计算出来。
出了什么问题?
顺便说一下,自动计算是closures的。
UPDATE
实际上它会以错误的方式更新:文件名公式获取工作表的名称,在这个工作表中,这个vba代码被保存为一个macrosbutton。 如何解决它?

如文档所述, CELL函数的第二个参数reference控制要获取信息的单元格,以及:

如果省略,则返回最后一个已更改的单元格的信息。

您正在省略第二个参数,显然最后一个更改的单元格恰好在错误的工作簿中。

在第二个参数中提供一个正确的单元格。