0

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

在本地测试它按预期工作,宏在几秒钟内完成。当我将连接更改为指向网络上的 db2 和 SQL 服务器数据库时,它会及时刷新数据,但是当我触发宏时,它需要大约 30分钟完成。仅更改了连接,并且我对所有测试都使用相同的工作簿。

首先想到的是它现在正在从网络中提取数据并且它可能是连接性的,但是它刷新数据正常并且它只是运行缓慢的宏并且VBA代码不使用连接并且只是一个基本的for循环。

我不知道是什么原因造成的,想知道是否有人以前遇到过这种行为并且知道我该如何解决?

4

1 回答 1

1

我想我找到了问题所在。

有人更改了在一个数据库中填充表的视图,以使用 LEFT 函数,该函数将数字转换为工作表中的字符串。所以看起来像是将一个表中的字符串与另一个表中的数字进行比较导致了性能问题。

令人惊讶的是它导致它变慢了这么多,但是将它转换回整数使它再次正常工作。

感谢您的帮助

于 2015-10-14T21:57:10.587 回答