Excel VBA CommandBars

时间:2019-03-22 12:12:16

标签: excel vba

我有一个用于通过S&P Capital IQ Excel插件(COM插件)提取数据的Excel模型。该模型已经使用了几年,没有任何问题,但是现在我在以下代码行中遇到了错误:

    Application.CommandBars.FindControl(Tag:="menurefreshdatacell").Execute

我尝试四处搜索,发现CommandBars可能已被Microsoft Office Fluent用户界面取代。但是,我似乎找不到解决方案或示例,说明如何从上面更改代码段。

一段时间以来,我一直在使用VBA,所以很不幸,我自己无法解决问题,希望在这里找到更多能干的人。

下面是整个代码段。选择指定区域,然后按插件中的“刷新选择”按钮。

让我知道是否遗漏了任何东西,非常感谢!

    Sub Update_FactSet_formulas()

    Application.ScreenUpdating = False

    Sheets("Peer group_segments").Select
    Range("PG_seg_data").Select

    Application.CommandBars.FindControl(Tag:="menurefreshdatacell").Execute

以下是插件作者提供的格式,多年来没有改变,以上内容应反映:

    Public Sub RefreshSelection()
    Dim Refreshbutton As CommandBarButton
    Set Refreshbutton = 
    Application.CommandBars.FindControl(Tag:="menurefreshdatacell")
    Refreshbutton.Execute
End Sub

1 个答案:

答案 0 :(得分:0)

我发现以下内容对我有用:

Application.Run("CIQKEYS_RefreshSelection")

该函数来自 ciqfunctions 库,但您无需添加引用即可使其工作。但是,您可以通过执行以下操作来添加库:

  1. 工具
  2. 参考资料
  3. 检查ciqfunctions
  4. 点击确定

要查看库中可用的所有函数:

  1. 转到查看
  2. 选择对象眉毛
  3. 检查ciqfunctions
  4. 从左上角可能显示“”的下拉菜单中,选择 ciqfunctions
  5. 在类下,选择 IUdf
  6. 函数应出现在“成员”列中

再次注意,为了让代码对我有用,我不需要将库添加到引用中,我只是想概述如何探索库,如果您愿意的话。

还有以下刷新功能:

CIQKEYS_RefreshWorkBook
CIQKEYS_RefreshWorkBookRangeV
CIQKEYS_RefreshWorkSheet
CIQKEYS_RefreshWorkSheetRangeV

希望这对你有用!