Excel – 如何忽略公式等于没有什么行?

我正在使用Microsft Office Interop API。 我的问题属于Excel。

我使用Interop API编写了一个程序来格式化Excel文档,然后将它们发送到打印机。 但问题是,我们偶尔会在人们创build一个跨越65,000多行的列的文件中运行,它所包含的是一个公式。 该公式仅为前100行左右创build输出,然后其余显示为空白。 但是,当发送到打印机,它试图打印像10,000页或东西,因为这些公式。

我首先想方设法告诉Excel不要打印这些范围。 我无法find任何设置忽略这些。 其次,我想过如何以编程方式来完成这个任务,但是这个逻辑会非常复杂,并且可能会导致不包含像这样的公式的“常规”文件出现问题。

有没有人知道有一个很好的方法让Excel忽略这些公式,等于没有?

我正在使用Delphi和Office 2007 Interop API。

我不知道delphi,但我创build了一个macros来获取最后一个活跃的列使用

With ActiveSheet row = .Cells(.Rows.Count, "B").End(xlUp).row End With 

然后有了这一行,你可以尝试打印你需要的列。

 ActiveSheet.Range("A1:" & "D" row).Select Selection.PrintOut Copies:=1, Collate:=True 

希望有所帮助!

不。 就Excel而言,如果一个单元格包含一个公式,则不pipe该公式的结果如何,它都将被填充。

在有值的单元格中input[end],然后按[下],会从当前位置开始到该列中第一个空白的单元格之前的最后一个已填满的单元格。 在公式栏中inputEnd-Down应该让你一路走到最后。

您所拥有的选项是在发出打印命令之前告诉Excel究竟要打印哪个范围。 您可以通过使用与Print |对应的方法来做到这一点 设置范围菜单选项(对不起,目前没有可用的COM接口)。

要find要打印的范围,您需要最右侧的一列和最下面一行数据范围。 假设您的第一行包含列标题,只需遍历第一行的单元格值,并在获取空白值时停止。

要查找数据范围的最底部一行,您需要一个没有公式但是“正常”值的列,并且在数据范围内的任何行中都没有空白值。 如果您的数据总是包含这样的列,您可以遍历它来查找最后一个填充的行,从而查找打印范围的底部边界。