建立此項目是為了說明使用 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