1

EPM (Hyperion) Smartiew を使用して自動的に「更新」および「すべて更新」するために使用する必要がある VBA コードを知っている人はいますか? 「更新」機能はアクティブなタブの Excel にデータを取り込み、「すべて更新」機能はワークブックのすべてのタブを更新します。

Excel のコマンド ボタンに添付する簡単なマクロを作成したいのですが、どの VBA コードを使用すればよいかわかりません。

マクロを記録しようとしましたが、記録を開始するだけで更新をクリックして記録を停止しましたが、これは機能しませんでした。

更新のためだけにこのコードを試しました:

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

Sub MRetrieve()
  X = HypMenuVRefresh()
End Sub

しかし、64 ビット システムで使用するために宣言メソッドを更新する必要があるというエラー メッセージを受け取りました (私は 64 ビット システムを使用しています)。

この自動マクロを作成してデータを更新する方法を知っている人はいますか?

どんな助けでも大歓迎です!

4

6 に答える 6

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

これは私にとってはうまくいきました。このマクロを任意のボタンに割り当てることができます。すべてのリフレッシュ関数を使用する代わりに、各ワークシート内で 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 に答える