每隔第n行libreoffice calc插入分页符

时间:2013-11-20 09:28:40

标签: macros openoffice-calc page-break openoffice-basic libreoffice-calc

我一直试图在libreoffice Calc中每隔n行插入分页符。我尝试过一个似乎不起作用的宏:

Sub PAGE_BREAK() 
  For MY_ROWS = 50 To Range("A65536").End(xlUp).Row Step 50
     ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Range("A" & MY_ROWS)
  Next MY_ROWS
End Sub

我为上面的代码得到了一个子程序或函数没有定义错误。任何想法我怎么能更容易。

1 个答案:

答案 0 :(得分:0)

在LibreOffice中插入分页符Calc工作表与MS Office VBA略有不同。使用LibreOffice Basic(或OpenOffice.org Basic),您可以通过将row's IsStartOfNewPage property设置为true来插入(水平)分页符。要访问每个n行,您只需使用ThisComponent.Sheets(0).Row(n)

因此,在LibreOffice Basic宏中组合它,结果可能如下所示:

sub pagebreak
rem ----------------------------------------------------------------------
rem define variables
Dim Sheet As Object
Dim Cell As Object   

Sheet = ThisComponent.Sheets(0)

for i = 10 to 100 Step 10
    Sheet.Rows(i).IsStartOfNewPage = true
next i

end sub

这个宏只是在每第10行之后插入一个手动分页符(注意第一行是Rows(0),所以Rows(10)是第11行),直到当前工作表的第101行。您可以轻松调整该代码以满足您的需求(最大行数等)。