Excel链接(带有一些bloomberg函数作为输入)在VBA完成之前不会更新

Excel链接(带有一些bloomberg函数作为输入)在VBA完成之前不会更新,excel,vba,bloomberg,Excel,Vba,Bloomberg,我有一个excel输入工作簿A有一些基于内部工作表参考和bloomberg函数以及一些计算字段的输入 我有一个excel输出工作簿B,需要从A检索信息,但是,如果我在B的vba中打开工作簿A,在vba完成调用之前,它不会更新链接infor A的输入示例,A包含表1、表2、表3 我想从sheet1细胞(1,1),细胞的内容(1,1)螨被Sheet2!单元格(2,1),这张表2!单元格(2,1)可以是一个计算字段,该字段基于来自另一个选项卡或某些彭博函数调用输入的引用 是否有方法可以首先验证工作簿A

我有一个excel输入工作簿A有一些基于内部工作表参考和bloomberg函数以及一些计算字段的输入

我有一个excel输出工作簿B,需要从A检索信息,但是,如果我在B的vba中打开工作簿A,在vba完成调用之前,它不会更新链接infor

A的输入示例,A包含表1、表2、表3 我想从sheet1细胞(1,1),细胞的内容(1,1)螨被Sheet2!单元格(2,1),这张表2!单元格(2,1)可以是一个计算字段,该字段基于来自另一个选项卡或某些彭博函数调用输入的引用

是否有方法可以首先验证工作簿A中的所有链接,以便我的工作簿B可以检索所有更新的信息

我试过了

Application.Workbooks.Open FileName:=path_array(tmp), UpdateLinks:=3       
Application.Calculate
Application.RTD.ThrottleInterval = 0
Application.Run "RefreshAllStaticData"
Application.Run "ConnectChartEvents"
Application.Run "RefreshData"
Application.Run "RefreshEntireWorkBook"
DoEvents

VBA Output looks like this:
A      B      C  D  E   F   G   H   I   J
4.4%  2.1%  2.2%    #VALUE! #VALUE! #VALUE! #VALUE! 11  5   #VALUE!
Manual like this:
A      B      C  D  E   F   G   H   I   J
4.4%  2.1%  2.2%    3.1%    4.2%    5.5%    3.4%    11  5   8.0%

要强制执行某些计算,请使用VBA对其进行更新,但将返回#值!对于具有额外参考层的字段。如果我只是手动打开它,一切都会在不到一秒钟的时间内自动更新。一直在苦苦挣扎为什么会有这样的差异。是否有办法在更新此输入之前对VBA进行时钟设置。提前谢谢

我对彭博社不熟悉,但这里有三件事

您可以使用延迟工作簿B中的执行。加载工作簿A,然后使用Application.OnTime调用工作簿B中的第二个子系统,并延迟一秒或两秒,这将允许工作簿A运行加载时运行的任何代码

也许会有帮助

对于你的问题,这里的答案有帮助吗?

嗨,安达姆,谢谢你的回复。问题是输入工作簿A,当手动打开它时,更新不到一秒钟。当使用vba从工作簿B打开它时,将其延迟2秒,不进行更新。只有在vba完成后,您最好的选择可能是使用vba API而不是公式检索数据。只要你的VBA代码还在运行,公式就不会更新。@Assylas问题是我没有那张输入表,20多张工作表的映射逻辑真的很混乱。如果我将所有内容重新填充到VBA API中,这在短时间内是不可行的。你知道这方面有什么解决办法吗。您可能是对的,公式更新在excel空闲时或默认情况下每2秒更新一次,如果当前VBA正在运行,则公式将冻结并等待当前excel完成。我假设存在一个彭博社函数可以强制进行这样的更新。您是否尝试过使用
DoEvents
?不,这会有帮助吗?我得到的最大困惑是为什么手动和vba自动打开它之间存在差异。我会给一个tryHi rbaryyoung,try DoEvents,no luck:(嗯,它可能是异步更新的,只需要几秒钟就可以完成并重新计算。嗨rbaryyoung,你知道在使用VBA时有没有办法强制它返回同步