首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个Oracle Smartview刷新在循环中不工作(当我执行代码时工作)

多个Oracle Smartview刷新在循环中不工作(当我执行代码时工作)
EN

Stack Overflow用户
提问于 2016-09-12 20:58:39
回答 1查看 1.6K关注 0票数 2

我有下面的代码,当我一行行地遍历它时(甚至当我只通过1或2个循环迭代,然后触发其余的循环迭代时),它就像一个魅力。当我从一个按钮运行它时,代码不起作用,因为Hyperion检索从来不更新我更改的部门的每一次迭代。部门本身会得到正确的更改(从Excel和由此产生的PDF文件中可以看到)。

因此,简单地说,代码在没有看到或捕获错误的情况下工作,但是结果是一组具有相同数据的PDF,尽管在按下按钮运行时标记为不同的部门。

我已经浏览了相当多的网络,尝试使用DoEventsApplication.Wait都没有成功。有人知道如何确保在按下按钮运行时,每个循环迭代都会发生刷新吗?

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-15 06:13:15

我们参考了HypMenuVReresh的在线文档,其中声明

HypMenuVRefresh()将数据检索到活动工作表中,并将数据放在活动工作表的开头。

来源:help-13-63.htm#528899

因此,通过在执行wsPL.Activate之前激活目标工作表(在本例中为HypMenuVReresh ),可以找到解决方案。

因此,通常情况下,总是在HypMenuVRefresh之前激活目标工作表是很好的做法,因为如果HypMenuVRefresh正在刷新未连接到Hyperion多维数据集的工作表,则不会引发错误。此外,在刷新表之前,可以声明HypConnected()来检查表是否连接到Hyperion多维数据集(即Hyperion刷新功能)。

如果工作表连接到提供程序,则HypConnected()返回真值;如果工作表未连接,则返回假值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39458689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档