다음과 같이 코드를 단계별로 실행할 때 매력이 있습니다. 1 또는 2 루프 반복 후 나머지는 발사). 단추로 실행할 때 코드가 변경되지 않으면 Hyperion Retrieve가 변경되는 각 반복마다 업데이트되지 않습니다. 부서 자체가 올바르게 변경됩니다 (Excel 및 결과 PDF 파일에서 볼 수 있음).다중 Oracle Smartview 새로 고침이 루프에서 작동하지 않음 (코드를 단계별로 실행하면 작동)
간단히 말해 코드는 보이지도 트래핑 된 오류없이 작동하지만 결과는 동일한 데이터가있는 PDF 세트입니다. 버튼 프레스에서 실행될 때 다른 부서로 분류되어 있습니다.
나는 그물을 닦은 후, DoEvents
과 Application.Wait
을 사용해 보았는데 성공하지 못했습니다. 누구나 단추 누르기에서 실행될 때 각 루프 반복마다 새로 고침이 수행되도록하는 방법에 대한 아이디어가 있습니까?
Option Explicit
Declare Function HypMenuVRefresh Lib "HsAddin.dll"() As Long
Sub CreateAllPDFS()
'... setup code to declare variables and loop range ...
'loop through departments
Dim cel As Range
For Each cel In rngLoop 'rngLoop declared and set in setup code
'set department on drivers tab
wsDrivers.Range("B4").Value = "'" & cel.Value
'*** --> tried to wait before the loop (just shot in the dark type thing)
'Application.Wait (Now + TimeValue("00:00:02")) 'pauses for 10 seconds, adjust as needed
'refresh hyperion
Dim lngReturn As Long
lngReturn = HypMenuVRefresh()
' *** --> tried Do Events
'DoEvents
'*** --> tried to wait after the loop
'Application.Wait (Now + TimeValue("00:00:02")) 'pauses for 10 seconds, adjust as needed
'quick error check
If lngReturn <> 0 Then
MsgBox "Could Not Refresh!"
Exit Sub
End If
'save as pdf
wsPL.ExportAsFixedFormat xlTypePDF, cel.Offset(, 1) & "\" & cel.Offset(, 2) & ".pdf", , , , , , False
Next
End Sub
나에게 눈 오프너에서이 질문에 ... 나는 그것을 인터넷 검색을 시작하고 docs.oracle.com "HypMenuVRefresh()에서이 문장을 발견은 *** 활성 시트 ***에 데이터를 검색하고 배치 활성 워크 시트 시작 부분의 데이터. " 따라서 버튼에서 실행했을 때 활성 시트가 잘못된 시트 일 수 있습니까? – Rosetta
@Rosetta에 감사드립니다! 그랬어. 'HypMenuVRefresh()'호출 바로 전에'wsPL.Activate'를 놓았고 버튼에서 실행할 때 완벽하게 작동했습니다! 당신이 대답을하면 나는 upvote하고 받아 들일 것입니다. –
나는 그것이 도움이 된 것을 기쁘게 생각한다. :) – Rosetta