【问题标题】:Insert page break every nth row每隔 n 行插入分页符
【发布时间】:2013-11-20 09:28:39
【问题描述】:
我一直在尝试在 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
我收到上述代码的子过程或函数未定义错误。
有什么想法可以让我更轻松地做到这一点吗?
【问题讨论】:
标签:
libreoffice-calc
page-break
libreoffice-basic
【解决方案1】:
在 LibreOffice Calc 工作表中插入分页符与在 MS Office VBA 中的工作方式略有不同。使用 LibreOffice Basic(或 OpenOffice.org Basic),您可以通过将 row's IsStartOfNewPage property 设置为 true 来插入(水平)分页符。要访问每个nth 行,您只需使用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 行。您可以轻松调整该代码以满足您的需求(最大行数等)。