Excel VBA:从另一个工作簿中提取数据的更有效的方法?

在将stream程转移到我们的客户关系pipe理系统之前,我已经写了一个Excel / VBA的工具,允许用户做一些地区规划。

此工具将打开位于共享目录中的工作簿。 然后在隐藏的工作表上将数据提交给用户的工作簿。 然后,用户通过他们可以看到的图纸进行所需的更改(这些图纸上有一个保存button,可以更改隐藏图纸上的相应数据)。

当用户完成所有需要的改变时,他们点击一个“确认”button。 然后有一个macros重新连接到共享目录上的工作簿。 它将数据返回到共享目录上的此工作簿。 此工作簿是[共享],以便多个用户可以同时进行更改,并设置代码以防止数据被不适当地覆盖。

这就是说,我已经提出了一个恼人的问题。 我们在全球多个地方设有办事处。 看来用户的连接速度差别很大。 连接速度较慢的用户遇到以下错误:

“Microsoft Office Excel正在等待另一个应用程序来完成OLE操作”。

我怀疑这是由于连接速度较慢,因为微软的支持网站指出,当Excel尝试与另一个没有及时响应的应用程序进行交互时,会出现此错误。

当macros尝试在共享目录中打开工作簿时出现此错误,因此连接速度是有意义的主要问题。

我发现我可以通过使用Application.DisplayAlerts = False来阻止这个错误,但更好的解决方法是使这个过程更有效率。

所以我真正的问题是,除了打开工作簿外,是否还有一些更有效的方法可以用来提取数据?

编辑:工作表打开共享工作簿的代码:

 Dim xlo As New Excel.Application Dim xlw As New Excel.Workbook Dim xlz As String, regions As String xlz = Sheet1.Range("o1").Value & "\Region Planning\TestDB.xlsx" Set xlw = xlo.Workbooks.Open(xlz) 

单元格O1包含共享驱动器的驱动器号。