如果其他工作簿已关闭,则公式不会更新

时间:2016-10-05 13:11:31

标签: excel excel-formula

我有以下公式,它引用同一文件夹中的另一个工作簿,但是当文件打开时它工作正常,问题是当其他excel文件因为公式不会更新而关闭时

其他工作簿打开时的公式

=IFERROR(COUNTIFS(Auto_Zero.xlsx!MonthDB,B6,Auto_Zero.xlsx!CSRDB,C2),"")

其他文件关闭时的公式

=IFERROR(COUNTIFS('C:\Users\csamayoa\Desktop\QA 
Test\Auto_Zero.xlsx'!MonthDB,B6,'C:\Users\csamayoa\Desktop\QA 
Test\Auto_Zero.xlsx'!CSRDB,C2),"")

我已经尝试了很多不同的建议,当其他文件关闭时,公式没有意外:(

3 个答案:

答案 0 :(得分:2)

Excel引用已关闭的工作簿时,像COUNTIFS和SUMIFS这样的函数不会重新计算。您可以尝试使用像ADO代码一样工作的Excel查询设计器。允许从封闭的书籍,数据库等中检索 希望这会有所帮助。

在不使用高级工具的情况下实现此目的的最简单方法是使用下面的代码打开文件,进行计算并关闭文件。不确定这是否有帮助。请将“H:\ My Documents \ 4674576.xlsx”更改为源文件路径。将此代码粘贴到Excel工作簿的新模块中。运行代码,看看这是否有帮助。

Sub loadfileandCalc() Dim acWb As Workbook Dim wb As Workbook Set wb = Workbooks.Open(Filename:="H:\My Documents\4674576.xlsx", UpdateLinks:=False, ReadOnly:=True) Set acWb = ActiveWorkbook ActiveSheet.Calculate Set acWb = Nothing wb.Close False Set wb = Nothing

End Sub

答案 1 :(得分:0)

所以一个简单的公式就像:

=SUM((Auto_Zero.xlsx!MonthDB=B6)*(Auto_Zero.xlsx!CSRDB=C2))

使用Ctrl-Shift-Enter输入公式。当使用此组合键时,曲线括号应该在公式栏中神奇地出现。

答案 2 :(得分:0)

与已关闭工作簿相关联的公式的替换公式:

关联到已关闭的工作簿时,COUNTIFSUMIFCOUNTIFSSUMIFS等公式不会更新其结果。

下面的列表显示了使用已关闭工作簿链接的替换公式。它显示了实际公式的语法及其替代,以便于翻译。

=COUNTIF( range, criteria )
=SUM(( range = criteria ) * 1 ) '*Entered as Formula Array*

=SUMIF( range, criteria, sum_range )
=SUMPRODUCT(( range = criteria ) * 1, sum_range )   

=COUNTIFS( criteria_range1, criteria1, [criteria_range2], [criteria2], ...)
=SUM(( criteria_range1 = criteria1 ) * ( [criteria_range2] = [criteria2] ), ...) '*Entered as Formula Array*

=SUMIFS( sum_range, criteria_range1, criteria1, [criteria_range2], [criteria2], ...)
=SUMPRODUCT( sum_range, (criteria_range1 = criteria1 ) * ([criteria_range2] = [criteria2]) * ...)

同时按 [Ctrl] + [Shift] + [Enter] 输入公式数组,如果输入正确,您将在公式周围看到 { }