我在slow exporting from access to excel中遇到类似的性能问题,通过设置循环的单个单元格值将数据导出到MS Excel:
objSheet.Cells(table_1_row_no + intcounter, table_1_colA_col_no) = table_1_array(intcounter, 0)
但是我的数据来自一个数组,并且需要在将数据传输到excel之后在excel中进行处理,因此我需要在传输数据后使用打开的工作表。因此,上述帖子中提到的方法中没有一个看起来非常适合。
我有一个MS访问应用程序,它从数据库中提取数据,在将数据放入excel之前对vba中的数据进行了相当多的处理。结果,要传输的数据是数组而不是记录集。将它恢复到记录集以允许使用.CopyFromRecordset方法的最简单方法是创建一个临时表和记录集,但是这样做会导致相当长的路径下降,除非没有更好的。
电子表格在Access选择结果之前会进行冗长的计算。我很想把它留在excel中,因为这样可以让工程师使用它来根据不同情况进行调整(环境受到控制,因此未经授权的变更不是问题)。因此,只需删除csv或excel文件而不打开它的选项也不适合。
任何建议都非常感谢。
答案 0 :(得分:0)
我遇到了同样的问题,尝试将您的数据源转换为记录集 如果您使用EXCEL 2000,2002,2003或2007,则使用CopyFromRecordset
'Copy the recordset to excel sheet we start in cell A1
sheet1.Cells(1, 1).CopyFromRecordset rst
如果记录集包含OLE对象字段或数组数据(如分层记录集)
,请小心CopyFromRecordset将失败