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

时间:2013-06-24 09:27:48

标签: excel vba excel-vba

作为我们将流程转移到CRM系统之前的临时修复,我编写了一个Excel / VBA工具,允许用户进行一些区域规划。

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

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

那就是说,我想出了一个恼人的问题。我们在国际上有许多办事处。看来用户的连接速度差异很大。连接速度较慢的用户遇到以下错误:

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

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

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

我发现我可以使用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包含共享驱动器的驱动器号。

0 个答案:

没有答案