性能问题在外部数据源的两个表中运行Excel中的macros

在工作表上,我有两个表,它们是从两个不同的外部来源填充的,一个来自db2和另一个SQL服务器。 一旦表中的数据被刷新,我将触发一个运行VBA代码的macros,这个代码循环遍历两个表中的单元格并应用业务规则。

在本地进行testing,按预期工作,macros在几秒钟内完成。 当我将连接更改为指向networking上的db2和SQL Server数据库时,它会及时刷新数据,但是当我触发macros时, 30分钟即可完成。 只有连接已被更改,我正在使用相同的工作簿进行所有testing。

首先想到的是,它现在正在从networking中提取数据,可能是连通性的,但是它刷新了数据OK,而且它只是运行缓慢的macros,VBA代码不使用连接,只是循环的基础。

我失去了什么是造成这一点,想知道是否有人曾经遇到过这种行为,知道如何解决它?

我想我find了这个问题。

有人已经改变了在一个数据库中填充表的视图,以使用在工作表中将数字转换成string的LEFT函数。 所以看起来像比较一个表中的string和另一个表中的数字引起了性能问题。

惊讶,它导致它减慢这么多,但将其重新回到一个整数,使其再次正常工作。

感谢您的帮助