Como Eliminar filas en openoficce

Tengo este código para ocultar filas, lo quiero cambiar para eliminar filas, la verdad lo intentado todo, y nad, alguien que me ayude por fa.

'Asignamos a oSheets el objeto que representa el conjunto de hojas
oSheets = ThisComponent.getSheets()
'Asignamos a oSheet1 la hoja con el nombre "Hoja1" notese que se nombre en español
oSheet1 = oSheets.getByName("Sheet1")
'Asignamos a oRows el conjunto de Filas, para columnas tendríamos
'que hacer referencia a .getColumns
oRows = oSheet1.getRows()
'Hacemos un ciclo sobre las filas desde la 0 a la 700
'Nótese que el conteo de filas comienza en 0
for i = 0 to 700
'Aquí asignamos a oRow la fila correspondiente al paso del ciclo
oRow = oRows.getByIndex(i)
'Asignamos a oCell la celda con la posición 0,1 tomando la referencia absoluta (columna, fila)
'0 por que corresponde a la primera columna
'i representa la fila
oCell = oSheet1.getCellByPosition(5,i)
'Evaluamos si el valor de la celda es 0
'Esto contempla tanto que este vacío como que literalmente valga 0
If oCell.Value = 0 Then
'Si es cero marcamos la visibilidad de la fila en Falso
oRow.isVisible = False
Else
'En caso contrario marcamos su visibilidad en true
oRow.isVisible = True
End If
'Pasamos a la siguiente iteración
next i

1 respuesta

Respuesta
2

Encontré lo siguiente, espero te ayude.

Aquí hay un código para eliminar tres filas en Sheet1 a partir de la fila 5

  oSheets = ThisComponent.getSheets()
  oSheet = oSheets.getByName("Sheet1")
  oRows = oSheet.getRows()
  oRows.removeByIndex(4, 3) '
'The first number is the row index. Row 1 has index 0, so row 5 has index 4
'The second number is the number of rows to remove.

No tengo manera de probar. Pero en tu código, me parece que sería algo así.

  oSheets = ThisComponent.getSheets()
  oSheet1 = oSheets.getByName("Sheet1")
  oRows = oSheet1.getRows()
  'Hacemos un ciclo sobre las filas desde la 0 a la 700
  For i = 0 To 700
    oCell = oSheet1.getCellByPosition(5, i)
    If oCell.Value = 0 Then
      oRows.removeByIndex(i, 1)
    End If
  Next i

Debes leer del 700 hacia el 0:

  oSheets = ThisComponent.getSheets()
  oSheet1 = oSheets.getByName("Sheet1")
  oRows = oSheet1.getRows()
  'Hacemos un ciclo de la fila 700 a la 0
  For i = 700 To 0 Step - 1
    oCell = oSheet1.getCellByPosition(5, i)
    If oCell.Value = 0 Then
      oRows.removeByIndex(i, 1)
    End If
  Next i

Hola Dante, gracias por responder, lamnetablemente para mi no corre ese código,"Propiedad o método no encontrado", seguiré buscado, gracias por la ayuda, si llegas a obtener algún otro comando que me pueda servir, seria demucha ayuda

Cambia esto:

ORows.removeByIndex(i, 1)

Por esto:

Osheet. Rows.removeByIndex(i,1)

¡Gracias!  Dante por si es la cosa, muchas gracias

Te invito a SUSCRIBIRTE a mi canal de YouTube:

Excel y Macros

Ahí encontrarás más sobre Excel y Macros:

https://www.youtube.com/channel/UCs644-v3ti4SF7zE_bt_YXA 

Comparte los enlaces en tus redes sociales.

Gra ci as y Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas