当我使用报告生成工具包写入Excel报告时为什么会出现错误-2146827284

更新 Jul 29, 2020

适用于

软件

  • LabVIEW Report Generation Toolkit
  • LabVIEW 2015
  • LabVIEW 2018

问题详述

情景1

我使用适用于Microsoft Office的报告生成工具包(Report Generation Toolkit)开发LabVIEW VI。我正在使用New Report.vi创建Excel文档,并使用Excel Easy Text.vi将值写入该报表。我的代码的如下面的图1所示:

图1:出现2146827284错误的代码段
当我运行我的程序时,我的报告没有写入到excel,我的错误处理程序报告错误2146827284 (“错误2146827284 发生在未识别的位置。”)。下面的图2显示了使用Simple Error Handler.vi时的显示的错误 。显示了导致此错误的原因是什么,以及如何防止该错误发生。
图2:报告生成工具包VI报告的错误

场景2

在我的应用程序中,我将多行和多列写入从模板创建的Excel工作表。对于一定数量的行和列而言,无任何问题,但是当我增加要写入的行数时,会出现此错误。我该怎么办?

解决方案

情景1

使用Excel Easy Text.vi的特定调用方法报出此错误。以下的修复程序可以防止此类报错。
  1. 将连接到 New Report.vi 最小化枚举常量更改为最大化无变化正常 (如图3所示)
  2. 在运行程序之前,请确保Microsoft Excel程序已完全打开。

图3:解决方案片段(“最小化”枚举变为“最大化”)
如果上述更改无法阻止此类报错,请检查以下条件:
  • 是否在特定长度的执行时间之后发生错误
  • 您是否正在使用Microsoft Excel 2003或更早版本
如果您的程序符合以上两个条件,则错误可能是由于2007版本之前的Microsoft Excel电子表格大小限制而引发的。

场景2

尝试在编写该应用程序的时候使用更少的行和列。基本上,减少使用的数据量直到您没有收到错误就可以了,或者降低到您确定不会发生这种情况为止。然后,您可以使用上一次迭代的数据来编写while循环,依此类推。

相关信息

2007版本之前的Microsoft Excel电子表格上限是256列和65,536行,直到2007年版本将上限增加到16,384列和100万行。如果超出这个上限并且尝试访问范围之外的行或列,则会发生此错误:Excel_Get_Range VI中的错误-2146827284。如果未进行错误处理,则在while循环内写入Excel电子表格会很快超出上限。 报告生成工具包(Report Generation Toolkit) 从1.1.2版本开始支持Office 2007。

此类错误可能与内存使用有关,因为在不同的LabVIEW和Excel版本中进行测试会产生错误,提到它是由于操作内存不足。