1

有谁知道我需要使用的 VBA 代码,以便我可以使用 EPM (Hyperion) Smartiew 自动“刷新”和“全部刷新”?“刷新”功能将数据拉入活动选项卡上的 Excel 中,其中“刷新”所有功能刷新工作簿中的所有选项卡。

我想在 Excel 中创建一个附加到命令按钮的简单宏,但我不确定要使用哪个 VBA 代码。

我尝试录制一个宏,我只是开始录制单击刷新并停止录制,尽管这不起作用。

我只是为了刷新尝试了这段代码:

Declare Function HypMenuVRefresh Lib "HsAddin.dll"() As Long

Sub MRetrieve()
  X = HypMenuVRefresh()
End Sub

但是收到一条错误消息,说我必须更新声明方法以用于 64 位系统(我使用的是 64 位系统)。

有谁知道我如何创建这个自动宏来刷新数据?

任何帮助将非常感激!

4

6 回答 6

2

VBA 中 x64 的声明不正确。

尝试:

Private Declare PtrSafe Function HypMenuVRefresh Lib "HsAddin" () As Long

Sub refreshWS()

    Dim Count, i As Integer

    i = 1

    Count = Worksheets.Count

    Do While i <= Count

        Sheets(i).Select

        MsgBox Sheets(i).Name

        Call HypMenuVRefresh

        i = i + 1

    Loop

    MsgBox "done"

End Sub
于 2015-05-13T18:24:31.027 回答
1

HypRetrieveRange可以刷新或更新一系列信息,还有许多其他功能可能适合您的需求,具体取决于您需要刷新多少信息。您是否按照他们的建议导入了整个smartview.bas文件?

于 2013-08-12T16:06:49.257 回答
0

这对我有用。您将能够将此宏分配给任何按钮。我没有使用 refresh all 函数,而是在每个工作表中 使用HypMenuVRefresh函数。

Sub refreshWS()
Dim Count, i As Integer

 i = 1
 Count = Worksheets.Count

    Do While i < Count

     Sheets(i).Select
     Call HypMenuVRefresh
     i = i + 1

    Loop

    MsgBox "done"

End Sub
于 2014-06-25T21:39:50.133 回答
0
Sub Refresh()
    '
    ' Refresh Macro
    ' Macro recorded 8/12/2011 by joao-oliveira
    '
    Dim oBar As CommandBar
    Set oBar = Application.CommandBars("Worksheet Menu Bar")
    oBar.Controls("Hyperion").Controls("Refresh").Execute
End Sub
于 2013-08-29T14:56:23.797 回答
0

使用基本上模拟按下按钮的函数调用!

刷新当前工作表

Declare Function HypMenuVRefresh Lib "HsAddin.dll" () As Long  
lngReturn = HypMenuVRefresh()

刷新所有工作表

Declare Function HypMenuVRefreshAll Lib "HsAddin.dll" () As Long  
lngReturn = HypMenuVRefreshAll()

*注意:返回值为0'OK'

于 2013-10-10T17:39:43.803 回答
0

创建一个按钮并为其分配一个新的子程序。使用 call 命令调用公共函数。

Sub RefreshHFM()
'
' RefreshHFM Macro
'
    Call HypMenuVRefreshAll
'
End Sub
于 2015-08-13T19:59:48.497 回答