每隔n行libreoffice calc插入pagebreak

我一直在尝试在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)

2 years ago

在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行 . 您可以轻松调整该代码以满足您的需求(最大行数等) .