1

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

我收到上述代码的子过程或函数未定义错误。

有什么想法可以让我更轻松地做到这一点吗?

4

1 回答 1

0

在 LibreOffice Calc 工作表中插入分页符的工作方式与在 MS Office VBA 中稍有不同。使用 LibreOffice Basic(或 OpenOffice.org Basic),您可以通过将行的IsStartOfNewPage属性设置为来插入(水平)分页符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 行。您可以轻松调整该代码以满足您的需求(最大行数等)。

于 2013-11-20T10:37:43.150 回答