ну даже не знаю... может ещё вариант:
X++:
//красивость: убираем висячие строки
document.LastUsedWorksheetRow(1,true); // переход к последней строке - доступ к последнему разрыву
pageBreakCount = document.getHPageBreakCount(1);
if(pageBreakCount)
{
lastPageBreakLocationRow = document.getHPageBreak(pageBreakCount,1);
//если разрыв появился после вывода последней строки с данными
if(lastPageBreakLocationRow>=(StartLineRow+rowCount-1))
document.insertPageBreakBeforeRow(StartLineRow+rowCount-1);
}
X++:
public int LastUsedWorksheetRow(int _workSheet=1, boolean selectLastusedRow =false)
{
COM comRange,
comWorkSheet;
COM comApplication;
COM temp;
if (m_comDocument)
{
comWorkSheet = this.getWorkSheet(_workSheet);
temp = comWorkSheet.Cells();
temp = temp.SpecialCells(11); // 11 = xlCellTypeLastCell
if(selectLastusedRow) //чтобы перейти на последнюю строчку
temp.select();
return temp.Row();
}
else return 0;
}
X++:
//доступ есть только тем разрывам, которые "видны" в рабочей области экрана
int getHPageBreak(int _numOfPageBreak, int _workSheet = 1)
{
COM comWorkSheet, comHPageBreaks, comHPageBreak;
COM pageBreakRange;
int totalPageBreakCount;
COMVariant comRowVariant, varRet;
ComDispFunction funcGet;
;
comWorkSheet = this.getWorkSheet(_workSheet);
comHPageBreaks = comWorkSheet.hPageBreaks();
totalPageBreakCount = comHPageBreaks.count();
if (_numOfPageBreak <= totalPageBreakCount)
{
comHPageBreak = comHPageBreaks.item(_numOfPageBreak);
pageBreakRange = comHPageBreak.location();
return pageBreakRange.row();
}
return 0;
}