首页 文章

每隔n行libreoffice calc插入pagebreak

提问于
浏览
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

我得到一个子程序或函数未定义上述代码的错误 . 任何想法如何我更容易这样做 .

1 回答

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

相关问题