我使用以下方法计算不同表格中的公式:
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
在这些表中,三个公式在合并单元格中。
AY3 中的公式1
=RIGHT(CELL("filename");LEN(CELL("filename"))-FIND("]";CELL("filename")))
公式2在 AZ3
=IFERROR(RIGHT(LEFT($AY3;FIND("_";$AY3)-4);2);"")
BA3 中的公式3
=IFERROR(RIGHT(LEFT($AY3;FIND("_";$AY3)-3);1);"")
如果我手动计算它们,一切都很完美。但是当我通过上面的代码进行操作时,它们无法计算出来;除了这三个以外,表中的其他公式都会计算出来。
出了什么问题?
顺便说一句,自动计算已关闭。
的 更新
实际上它以错误的方式更新:文件名公式获取将此vba代码保存为宏按钮的工作表的工作表名称。如何解决?
答案 0 :(得分:2)
作为documented,CELL
函数的第二个参数reference
控制您想要了解信息的单元格,并且:
如果省略,则返回最后一个已更改单元格的信息....
您省略了第二个参数,显然最后一个更改的单元格恰好位于错误的工作簿中。
在第二个参数中提供正确的单元格。