使用VBA重新下载报告,但不影响现有报告(MS Excel)

2020-08-27 15:27发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,我正在设计和监督MS Excel中使用的程序。 当前,用户将在工作表的单元格中输入所需的参数,一旦用户单击链接到SAP vba宏的按钮,这些参数将使用VBA推送到Analysis for Office。

完成这些操作后,通过SAP将4个报告下载到工作簿中的单独工作表上。 用户可以根据自己的喜好修改这些报告。 在使用该程序几个小时后,需要根据该程序的使用方式重新下载四个报告之一。 您如何只下载四个报告之一而不是全部下载四个报告? 我们只希望重新下载4个报告之一。 这样可以保留用户对其他3个报告所做的更改。

谢谢

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,我正在设计和监督MS Excel中使用的程序。 当前,用户将在工作表的单元格中输入所需的参数,一旦用户单击链接到SAP vba宏的按钮,这些参数将使用VBA推送到Analysis for Office。

完成这些操作后,通过SAP将4个报告下载到工作簿中的单独工作表上。 用户可以根据自己的喜好修改这些报告。 在使用该程序几个小时后,需要根据该程序的使用方式重新下载四个报告之一。 您如何只下载四个报告之一而不是全部下载四个报告? 我们只希望重新下载4个报告之一。 这样可以保留用户对其他3个报告所做的更改。

谢谢

付费偷看设置
发送
7条回答
黑丝骑士
1楼-- · 2020-08-27 16:02

尊敬的Vadim,

在执行该代码时,数字" 1"出现在msgbox中。

尝试通过"打开工作簿"事件运行Office的SAP Analysis:

我无法使Office的"隐藏"宏的任何分析功能正常工作,因为我认为这些宏尚未加载到系统中。 此外,由于宏存在于项目特定的编码模块之外,因此需要使用Application.Run方法,并且该方法在excel中使用时将运行与工作簿关联的任何宏。 无论宏是否存在于项目特定的文件夹中。 但是我相信,"隐藏"的分析宏不会在工作簿打开事件中运行,因为它们是未初始化的,并且在完成工作簿事件代码之前一直处于休眠状态。

因此,要执行和运行任何SAP Analysis for Office宏,就不能在工作簿打开事件中运行它们。 (我希望我在这里错了,如果有办法的话,我很想知道怎么做?。。很可能是已经建立了公司结构和IT许可。但是,我坚信这是不可能的 )

混合代码:

公共子RefreshSingle()
    结果暗淡
    lResult = Application.Run(" SAPExecuteCommand"," Refresh"," DS_4")
    MsgBox CStr(lResult)End Sub 

已用于解决仅刷新一个数据源而不刷新所有四张纸的问题。 但是,一旦打开工作簿,就需要执行此代码。

当我尝试从工作簿打开事件中运行上述代码时,我用来解决烦人的"宏不存在"错误消息的一种方法是,将一个隐藏的布尔值放在工作表的隐藏单元格中。 用户在打开工作簿完成后单击以激活主屏幕,将调用工作表更改事件,该事件检查此隐藏的单元格的值以查看其是否已更改。更改后,它会运行供稿器宏,该宏运行两次RefreshSingle。 因为只运行一次不会刷新源,但是第二次运行会刷新。

这会减慢工作表导航过程,因为使用了多个" if"检查来检查某些单元格是否已更改值,或者用户是否已选择特定的工作表单元格。

我将在这里结束这个"线程",除非任何人都可以就如何从工作簿打开事件中初始化和刷新数据源释放任何信息。

否则,谢谢大家的帮助。

花wan

一周热门 更多>