创建此项目是为了说明使用 VBA for Excel 开发的宏的使用可用于自动收集和可视化选定的一组绿色能源股票的数据。这用于展示使用宏的功能以及如何使用按钮等图形界面将其自动化,以允许可重复使用任务。该项目使用了 2017 年和 2018 年收集的 12 只股票的股票数据。所使用的数据包括股票代码、开盘价和收盘价以及每天的每日交易量。由此,我们可以确定所分析的每只股票的第一个和最后一个股票价格以及总交易量。
该项目的另一个目标是研究如何使用重构来优化完成宏所需的计算能力来提高代码效率。为此,我们使用了代码的初始版本,该代码可以正常运行,但需要程序为我们要分析的每个股票代码完成整个数据集的迭代。目标是开发原始代码的重构版本,要求程序仅完成数据集的迭代并获得与第一个版本相同的数据。
首先,我们开发了功能代码,可以收集我们想要分析的每只股票的年度股票总量和逐年表现。正如我们在下面提供的代码中所看到的,通过完成数据集的迭代并将数据插入到 Excel 工作表中,然后再移动到下一只股票,来收集每只股票的数据。
代码中嵌入了一个计时器,它会显示程序运行所需的时间并显示结果。使用它,我们可以比较完成初始代码以收集每年数据集的数据所需的时间。这为我们提供了每年代码的执行时间,如下图所示。它显示初始代码花费了 0.6289062 秒来完成 2017 年数据集,并花费了 0.6171875 秒来完成 2018 年数据集。
通过重构原始工作代码,可以通过减少数据集的总迭代次数来更有效地利用计算,从而提高任务的执行速度。为了重构此代码,需要将两个组件添加到正在开发的宏中。第一个是每个代码的索引,该索引将针对正在分析的数据集中的每行数据进行迭代。对于数据集中的每一行数据,程序将识别存在哪个股票并存储与索引值相关的相关数据。第二个是数据数组的集合,用于存储每个股票行情的多个数据点。由于可以根据收集顺序检索保存在数组中的每个值,因此可以将此数据链接回所使用的股票索引。使用这两个工具可以重构代码,如下面的示例所示。
使用用于确定初始代码的执行时间的相同代码,可以查看在用于分析的重构代码中观察到的执行时间是否有任何改进。如下图所示,使用新代码完成 2017 年和 2018 年数据分析所需的时间,并用于与使用的初始代码进行比较。由此我们可以看出,完成 2017 年数据集花费了 0.5273438 秒,完成 2018 年数据集花费了 0.516825 秒。
根据根据完成初始和重构代码的执行时间收集的信息,2017 年数据集减少了 0.1015624 秒,2018 年数据集减少了 0.1103625 秒。
重构代码的过程对于其使用来说有一些优点和缺点。首先让我们看看一些优点
使用重构代码的一些缺点。
在我们在这里展示的示例中,为提高代码效率而完成的重构有一些优点和缺点。
代码更改带来的一些积极的想法如下:
通过减少收集数据所完成的迭代次数,减少了完成分析所用的时间。
产生了更强大的代码,可以轻松扩展到更大的数据集和更多的搜索条件
利用数组存储数据,如果需要对数据进行更深入的分析,可将其用于其他计算或分析
在此代码中使用重构的一些负面因素包括:
https://www.c-sharpcorner.com/article/pros-and-cons-of-code-refactoring/" ↩ ↩ 2