excel - Excel BBG 公式不刷新
问题描述
我正在尝试编写一个基本脚本来打开另一个文件,刷新该文件中的数据,将该更新的文件另存为值(不是公式),然后关闭最初打开的包含公式的文件而不保存。我的问题是,在宏完成并且“更新”文件将自己保存起来之前,该文件实际上并没有提取请求的公式。换句话说,公式开始刷新,显然永远不会完成刷新,然后使用“#N/A Requesting Data...”字符串而不是实际数据复制/粘贴它们自己。我已经看到了一些关于此的类似问题,但我还没有看到一个定义问题首先存在的原因。我试过运行刷新和保存在不同的潜艇,并尝试了许多不同的方法等待公式完成刷新,但无济于事。例如:
'ATTEMPT 1
'Application.Calculate
'If Not Application.CalculationState = xlDone Then
' DoEvents
'End If
'ATTEMPT 2
'Do: DoEvents: Loop While Application.CalculationState = xlCalculating
'ATTEMPT 3
'Do Until ActiveSheet.CalculationState = xlDone
' DoEvents
'Loop
这是启动文件打开后运行的代码:
Sub Auto_Open()
Call Refresh
'COPY PASTE VALUES
ActiveSheet.Cells.Copy
'COPY UPDATED SHEET TO NEW BOOK & SAVE AS .XLS
Workbooks.Add
With ActiveSheet
.Cells.PasteSpecial xlValues
.Cells.PasteSpecial xlFormats
End With
Application.CutCopyMode = False
ActiveWorkbook.SaveAs (NewBook & Format(Now(), "DD-MMM-YYYY hh mm AMPM") & ".xls")
End Sub
这是实际刷新数据的子:
Sub Refresh()
Application.Calculation = xlCalculationManual '确保它只在您告诉它时提取数据
Dim wkbook As Workbook
Dim OpenedBook As String
OpenedBook = "G:\Folder Name\Sub Folder\File Opened in Folder.xlsx" 'FULL PATH OF WORKBOOK TO BE OPENED
NewBook = "G:\Folder Name\Sub Folder\File Saved in Folder\" 'BASE NAME OF THE SAVED WORKBOOK
'OPEN THE DESIRED WORKBOOK
Set wkbook = Workbooks.Open(OpenedBook)
wkbook.Activate
'REFRESH ALL BBG FORMULAE
Application.Run "RefreshAllWorkbooks"
Application.Run "RefreshAllStaticData"
Application.Wait (Now + TimeValue("00:00:10"))
End Sub
被刷新的实际公式在其他情况下起作用,并且是直截了当的 BBG BDH 公式。例如 =BDP(B3&" curncy", "px_mid") 其中 B3 有一个像 "EURUSD" 这样的货币对。即使在 Wait 和 DoEvents '修复'之后,关于为什么公式没有拉动的任何想法?我有一种感觉,我误解了一些关于 BBG/VBA 工作原理的基本知识,所以请帮助我理解为什么这种情况首先存在。提前致谢!
解决方案
推荐阅读
- perl - 如何将分叉子程序的哈希内容传递回主程序?
- javascript - 如何在 axios 中创建一个全局变量?
- python - 无法在 python 中打印与 CSV 文件(时间轴)具有相同日期的折线图
- python - 如何编辑直方图上的 x 轴标签?在 matplotlib 上
- ios - 如何为 Native Base Datepicker 添加确认和取消按钮
- python - 如何使用 Digi XBee Python 模块向远程 XBee 发送 API 帧?
- excel - 将日期添加到选项卡
- .htaccess - .htaccess 限制对根级页面的访问。我该如何阻止这个?
- python - python - 如何将字典与一个键合并到python中的另一个键字典?
- html - Css交换滚动条问题