簡體   English   中英

在Excel中跨外部數據源的兩個表中運行宏的性能問題

[英]Performance issue running a macro in Excel across two tables from external data sources

在工作表上,我有兩個表,這些表是從兩個不同的外部資源填充的,一個來自db2,另一個來自SQL Server。 刷新表中的數據后,我將觸發運行VBA代碼的宏,該代碼循環遍歷兩個表中的單元並應用業務規則。

在本地測試它可以按預期工作,並且宏可以在幾秒鍾內完成。 當我更改連接以指向網絡上的db2和SQL Server數據庫時,它會及時刷新數據,但是當我觸發宏時,它大約需要花費時間。 30分鍾即可完成。 只有連接已更改,並且我使用同一工作簿進行所有測試。

首先想到的是它現在正在從網絡中提取數據,並且可能是連通性,但是它可以刷新數據,並且它只能運行緩慢的宏,並且VBA代碼不使用連接,而只是一個基本的for循環。

我不知道是什么原因導致的,我想知道是否有人之前曾遇到過這種行為,並且知道我該如何解決?

我想我找到了問題。

有人更改了在一個數據庫中填充表的視圖,以使用LEFT函數,該函數將數字轉換為工作表中的字符串。 因此,看起來像將一個表中的字符串與另一個表中的數字進行比較會導致性能問題。

令人驚訝的是它使速度減慢了很多,但是將其強制轉換為整數會使它再次正常工作。

感謝您的幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM