Como remover linhas em branco no CALC

Como remover linhas em branco no LibreOffice CALC

Hoje precisei eliminar várias linhas em branco numa planilha no LibreOffice Calc 4.1. Trabalho chato este.

Procurando no “oráculo de Deus” acabei achando o link do site Seja Livre com esta dica pronta: um macro que elimina as linhas!

Ali esta todo o passo-a-passo de como incluir a macro no seu CALC. Mas…

Assunto indicado:  Novos wallpapers do 9.04

… ao executar encontrei vários erros de sintaxe. Dei uma fuçada e depois de eliminar os erros, posto abaixo o código. Basta copiar e colar.

LibreOffice Calc

Copie e cole este macro no seu CALC

REM  *****  BASIC  *****

Sub Main

REM Macro que remove linhas em branco em uma planilha.
REM Desenvolvida incialmente por Noelson Duarte em *02/06/2005*.
REM Alterada por Francival Lima em 01/03/2008
'
oDoc = thisComponent
'Retorna o Documento aberto.
oControlador =oDoc.getCurrentController()
'Retorna o controlador do Documento aberto.
oPlan = oControlador.getActiveSheet()
'Retorna a planilha ativa.
oCursor = oPlan.createCursor()
'Cria um cursor
oCursor.gotoEndOfUsedArea(False)
vEnd = oCursor.getRangeAddress()
oExt = oPlan.getCellRangeByPosition(0,0,vEnd.EndColumn,vEnd.EndRow)
oLinhas = oExt.getRows()
nTotal = oLinhas.getCount() - 1
nFlags = com.sun.star.sheet.CellFlags.VALUE OR _
com.sun.star.sheet.CellFlags.DATETIME OR _
com.sun.star.sheet.CellFlags.STRING OR _
com.sun.star.sheet.CellFlags.ANNOTATION OR _
com.sun.star.sheet.CellFlags.FORMULA
For i = nTotal To 0 Step -1
   oExtLin = oPlan.getCellRangeByPosition(0, i, vEnd.EndColumn, i)
   oCelulasNaoVazias = oExtLin.queryContentCells(nFlags)
   If oCelulasNaoVazias.getCount() = 0 Then
      oLinhas.removeByIndex(i, 1)
   End If
Next i

End Sub

Sugestões e comentários, estamos ai! Use o CALC com mais alegria agora.