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

时间:2015-04-03 13:48:26

标签: excel vba excel-vba excel-formula

我使用以下方法计算不同表格中的公式:

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代码保存为宏按钮的工作表的工作表名称。如何解决?

1 个答案:

答案 0 :(得分:2)

作为documentedCELL函数的第二个参数reference控制您想要了解信息的单元格,并且:

  

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

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

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