当尝试将工作表的内容粘贴到另一个工作簿中时,直到我选择在剪贴板弹出窗口中保留大量信息的选项后,公式才会更新。
我尝试了 application.disablealerts 并再次复制来解决它,但它仍然只复制“#VALUE!”作为文本而不是公式的值,甚至不是公式本身。我尝试过各种pastespecials,但在每种情况下它都只是复制“#Value!”。
Workbooks.Open Filename:=(xxxxxx), Password:="xxxxx"
Sheets("xxxxx").Activate
'Attempt to have formulas work
ActiveSheet.EnableCalculation = True
ActiveSheet.Calculate
Cells.Select
Selection.Copy
Windows("xxxx").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
复制之前要更新的公式以及粘贴时要继承计算值的公式。
所以问题是 Excel FactSet FDS API。
打开工作簿并运行以下代码。确保 Excel 项目引用 FactSet Office API 类型库、FactSet Office API 类型库(使用 FDSW32.EXE)和 Factset Office API 类型库已启用:
将 FDSAPI 调暗为新的 FactSet_API Dim varResult 作为变体 单元格选择 varResult = FDSAPI.RunApplication("OfficeAPI", "application=excel,method=RefreshSelectedEqualsFDS") 计算
这将在复制和粘贴之前提取所有值。它似乎将数据存储在excel之外,并在所有进程运行后自动导入。