自动调整所有列并查找包含数据的最后一行和最后一列

时间:2017-08-22 11:58:20

标签: c# excel ms-office vsto office-interop

我想:

  1. 确保Excel工作表的所有列都加宽到足以适合列的每一行中的文本;以及

  2. 我想找到该工作表中包含数据的最后一列和最后一行,即最后一个非空行和最后一个非空列。

  3. 具有背景颜色但没有文本的单元格也将被视为非空。

    因此,例如,像这样的工作表:

    enter image description here

    看起来像这样:

    enter image description here

    最后一个数据单元报告为 D10 ,因为它是最后一个单元格,即使它没有文本。

    VSTO方法/ API将为我提供上述内容?

1 个答案:

答案 0 :(得分:2)

要确定使用的范围,请使用Worksheet.UsedRange属性: https://msdn.microsoft.com/en-us/vba/excel-vba/articles/worksheet-usedrange-property-excel?f=255&MSPPError=-2147217396

对于此范围内的自动调整列,请使用Range.AutoFit方法: https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-autofit-method-excel?f=255&MSPPError=-2147217396

UsedRange = ActiveWorkbook.Worksheets.Item("Sheet1").usedrange
UsedRange.Columns.Autofit