通过VBA将Excel范围移动到Access表

时间:2013-12-04 16:35:18

标签: excel vba ms-access

我正在尝试有效地将任意范围移动到MSAccess表,令人惊讶的是,似乎没有太多关于做的事情。有问题的范围可能是连续的,也可能不是连续的,但在移动数据之前我无法合理地保存打开的工作簿,因此创建名称 - &gt;保存 - &gt; Select * Into tblTABLE from [Microsoft Excel;Data Source=<Path to file>].[<NamedRange>]不是直接选项。

相反,我正在将范围复制到新工作簿中,然后在那里执行该操作。这非常低效,但可能比在删除之前在temp目录中保存整个工作簿的新副本更有效。

理想情况下,我想将导入方法改为稍微减少开销的方法。任何人都可以想到一个更好的方法,仍然可以处理非连续范围吗?

谢谢, 托比

1 个答案:

答案 0 :(得分:0)

我发现实现这一目标的最有效方式是通过循环 - 打开读取/写入记录集到Access表,读取值比复制和粘贴(有点令人惊讶)更有效,至少对于中等数量的线(例如,最多~1000)。

显然,应用和恢复了适当的EnableEvents / SceenUpdating / Calculation设置,否则性能非常糟糕。

然而,我仍然对任何人可能拥有的更好的解决方案非常感兴趣。