云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

服务器_域名解析错误无法上网_返现

小七 141 0

在分享了用Excel自动更新和分发Office文件分析的基本方法之后,微信返利,这个博客介绍了我从最初的文章中学到的一些知识。

文章1:通过VBA/VBscript自动更新Excel文件(BEX&AO)中的BW数据帖子2:通过VBA/VBscript自动更新Excel文件(BEX&AO)中的BW数据–第2部分帖子3:通过VBA分析Office变量和过滤器

在过去的几周里,我一直在改进和修改主模板,主要是针对我在工作中的具体需求,但您可能也会发现它很有用。

我在几周前购买了SAP BusinessObjects Analysis Office–Tobias Meyer的综合指南,发现它非常有用非常有用。

随着我在分析之旅中的进一步发展,我肯定会借鉴他书中提到的许多观点。特别是在各种查询中操纵数据的视觉显示。

他的网站上也有很多关于分析的好博客文章。看看吧。

我也非常感谢伊万·邦达连科。他指出了我在改进模板时缺少的一些东西。主要是使用CDO来简化邮件发送方面的工作,更好地使用其中一个过滤功能。

Ivan自己也有一个很好的解决方案,可以在github上找到。当然值得一谈。

让我们继续改进。

注意,所有这些都包含在这个博客文章底部的模板的新版本中。如果您只想获取最新版本并了解它是如何完成的,请跳到底部。

技术改进#1:要获得更清晰的筛选器列表,请使用SAPListOfDynamicFilters而不是SAPListOfEffectiveFilters技术改进#2:使用CDO在Excel中发送电子邮件技术改进#3:正确确定数组中的维数功能改进#1:在AO文件中分发单个工作表功能改进#2:刷新文件中的任何数据透视功能改进#3:更多的动态数据计算

这是由Ivan Bondarenko提供的。

有效过滤器也再次显示变量(因为变量是过滤器的一种形式)。实际上我们并不希望这样,因为我们是分开处理变量的。没有必要重复处理所有的事情。

因此,免费大数据,在我们的Get\u Active\u Variables\u and\u Filters子例程中没有这个:

我们现在使用这个:

这个也是由Ivan Bondarenko提供的。

CDO已经有一段时间了,最好总结一下:Ron de Bruin Excel Automation

它真正需要的是指向smtp服务器。它不需要安装Outlook或任何其他第三方软件,如SwithMail。

它甚至可以与Gmail的SSL一起工作(查看Ron de Bruin Excel Automation页面上的示例文件)。

在我们的模板中,我们现在允许用户选择CDO,然后调用以下子例程(注意CDO\U Server是我们在上定义的常量)模块顶部):

第三个技术改进是在处理数组方面,特别是在计算数组有多少个维度的部分,以便我们可以相应地处理它。

前面的代码是一个黑客。这是最基本的,网站建站平台,最开始起作用,但后来被证明是不可靠的,并在某些情况下产生"Runtime error 13 Type Mismatch"(感谢Carolyne证明这也发生在她身上)。

下面的函数返回数组中的维数(从一维) :

将该函数添加到模块底部。

然后在"获取\活动\变量\和\过滤器"子例程中进行以下更改。

添加到例程顶部:

替换为:

对同一子例程中的过滤器部分执行相同操作。它会更可靠,现在正正确地使用LBound和UBound功能在数组中循环。

对我来说,海量数据,一个真实的场景是一个单独的AO文件,该文件中的不同业务领域有单独的表。

单独的表都是从该文件中的另一个表上的同一个共享BW查询中提取数据。

我需要刷新来自BW的文件,更新所有相应工作表上的轴,然后以PDF格式将每个工作表发送到不同的电子邮件地址。

要通过电子邮件发送每个工作表,我在参数文件中添加了一个新列。

保存或通过电子邮件发送时,如果填充了工作表列,云服务器租用,则将执行以下操作:

1。将整个文件保存到临时文件名中。

2。加载新文件并删除其中任何不是我们想要的工作表的工作表。

3。保存和/或通过电子邮件发送新文件。

为什么我们要先将整个文件保存到临时文件中?因为我们仍然希望对原始文件进行更多操作。

如果我有10张工作表要处理,我希望在处理完当前工作表后,原始刷新的文件仍然可用。

添加了一个新操作,"RefreshAllPivots"。

如果在参数文件中选择了该操作,它在VBA代码中执行以下操作:

它所做的只是刷新AO文件中的任何轴。

当前动态日期计算列表如下。

今天:今天日期。格式年月日

昨天:昨天。格式年月日

当前日期:今天,但只是当天。格式DD

当前月:当前日历月。格式年月日

当前年份:当前日历年。格式YYYY

lastmount:与今天相比的上一个日历月。格式年月日. 与上一个日历月相同。

ENDOFLASTMONTH:上一个日历月的最后一天的日期。格式年月日

上一日历周:上周的日历周数。以星期一开始的一周为基础。格式WW.yyy年

上一日历周:与上一日历周相同,但为上一年。格式WW.yyy年

上月:与上月相同。格式年月日

上一日历月上一年:与上一日历月相同,但为上一年。格式年月日

上周日:最近一个周日的日期。格式年月日

上周日:与上周日相同,但为上一年。格式年月日

财务年度:当前会计年度。格式YYYY.

财务年度的第一天:当前财务年度的第一天(假设是7月至6月的财务年度)。格式年月日

上一年度第一日:与上一年度第一日相同。格式年月日

你可能会看到他们中的一些人想知道他们什么时候会被使用。这里有一个例子。

我需要得到今年迄今为止的数字,但要到最近一周的结束(星期天结束的一周)。然后还需要将其与上一个财政年度的相同情况进行比较。

我不能使用日历周,因为其中一周开始于财政年度开始之前。

而是使用参数文件中的变量,如下所示:

FirstDayOffFinancialYear–LASTSUNDAY;财务年度的第一天去年-上周日年度

VBA代码将此转换为:

01.07.2016–19.02.2017;01.07.2015–19.02.2016

仍有需要学习和改进的地方,但是上面的更改有助于更全面地解决问题并提高其稳定性。

下面是模板的版本0.7以及一个示例参数文件。我把两个都压缩了,只需下载一次