访问VBA TransferSpreadsheet数据不导出没有错误

我有一个Access应用程序使用VBA将数据导出到Excel .xlsm文件。

我的代码行是

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "qry_ALL_Issue", fName, False, "IData" 

然后我的代码继续打开Excel应用程序并运行macros,这是为用户生成报告。

我的问题是这个在我的电脑上工作,但不适用于其他人。 我的错误陷阱永远不会被触发,所以我没有得到在Access中的错误。 Excel中的错误陷阱无法find“IData”选项卡时触发。 我没有一个错误代码来处理,所以很难弄清楚发生了什么事情。

我正在使用Office 2010,另一个人正在使用2007年。我尝试让他们打开Excel文件,对其进行修改并保存 – 没有任何更改。 我让他们创build一个新的空白文件,这个新的文件访问没有导出到。 这意味着问题显然是Excel文件。 所以问题是为什么我可以导出到.xlsm文件,而其他人不能? 换句话说,那个文件不能输出到什么地方,但我可以吗?

直接从MSDN复制有关范围参数

一个stringexpression式,它是单元格的有效范围或电子表格中的范围名称。 这个参数只适用于导入。 将此参数留空以导入整个电子表格。 当您导出到电子表格时,您必须将此参数留空。 如果input一个范围,则导出将失败。

导出时,必须省略Range参数。 也许这会有什么关系呢?

http://msdn.microsoft.com/en-us/library/office/ff844793%28v=office.15%29.aspx