2013-08-12 6 views
0

EPM (Hyperion) Smartiew를 사용하여 자동으로 "새로 고침"및 "모두 새로 고침"할 수 있도록 내가 사용해야하는 VBA 코드를 알고 있습니까? "새로 고침"기능은 "새로 고침"all 기능이 통합 문서의 모든 탭을 새로 고치는 활성 탭에서 Excel로 데이터를 가져옵니다.Oracle 용 Smart View에서 VBA 새로 고침 매크로 만들기

Excel의 명령 단추에 연결된 간단한 매크로를 만들고 싶습니다. 사용할 VBA 코드를 잘 모르겠습니다.

매크로를 기록하려고 시도했는데, 단순히 클릭 새로 고침을 시작하고 녹음이 중지되었지만 녹음이 중지되었습니다.

난 그냥 새로 고침이 코드를 시도 :

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

Sub MRetrieve() 
    X = HypMenuVRefresh() 
End Sub 

하지만 64 비트 시스템 (I 64 비트 시스템을 사용하고 있습니다)를 사용하기 위해 선언 방법을 업데이트했다 없다는 오류 메시지를 수신 .

누구든지이 자동 매크로를 만들어 데이터를 새로 고칠 수 있음을 알고 있습니까?

도움이 될 것입니다.

답변

1

HypRetrieveRange은 정보 범위를 새로 고치거나 업데이트 할 수 있으며 새로 고침해야하는 정보의 양에 따라 원하는 다른 기능도 다양합니다. 그들이 추천 한 것처럼 전체 smartview.bas 파일을 가져 왔습니까?

+0

답장을 보내 주셔서 감사합니다. 나는'HypRetrieveRange'와'HypRefresh'를 다음과 같은 declare 문을 사용하여 시도했습니다 : 'Declare Function HypMenuVRefresh Lib "HsAddin.긴 서브 MRetrieve으로 DLL "()() X = HypMenuVRefresh() 종료 Sub' 하지만 이런 내 말은 같은 오류가 발생했습니다 작동하지 않았다 : 컴파일 오류 : 상수, 고정 길이 문자열, 배열, 사용자 정의 형식 및 개체 모듈의 공용 멤버로 사용할 수없는 Declare 문 이 오류가 발생했거나 해결 방법을 알고 있습니까?이 새로 고침 문은 가능한 가장 좋은 방법입니다. – user2674605

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 
0

기본적으로 버튼을 눌러 시뮬레이션하는 함수 호출을 사용하십시오!

새로 고침 현재 워크 시트

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

새로 고침 모든 워크 시트

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

* 참고 : 0 반환 값이 나를 위해 일

0

'OK'입니다. 이 매크로는 어떤 버튼에도 지정할 수 있습니다. 새로 고침 전체 기능을 사용하는 대신 각 워크 시트 내에서 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 
1

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 
0

가 버튼을 만들고 새로운 서브 루틴을 할당합니다. public 명령을 호출하려면 call 명령을 사용하십시오.

Sub RefreshHFM() 
' 
' RefreshHFM Macro 
' 
    Call HypMenuVRefreshAll 
' 
End Sub