Luego de de nuestra extensa recopilación de datos hemos podido solucionar este asunto que suelen tener muchos los usuarios. Te dejamos la respuesta y deseamos serte de gran ayuda.
Solución:
Para mover una fila en Open Office Calc:
- Seleccione la celda en la columna A de la fila que se va a mover.
- Presione Mayús-Espacio para resaltar toda la fila.
- Mantenga pulsado el ALT key.
- Arrastre la fila (aparece una línea negra gruesa) hacia arriba o hacia abajo hasta la ubicación deseada.
- Si su trabajo parece correcto, haga clic en el icono Guardar en la barra de herramientas.
- De lo contrario, ALT–Z deshacer.
Si desea sobrescribir y destruir la ubicación de destino, no mantenga presionada la tecla ALT key abajo. Simplemente haga clic en la fila resaltada y arrástrela a su nueva ubicación. Los datos en la ubicación de destino se destruirán y se reemplazarán con los datos de la fila que se está moviendo.
No estoy seguro de si hay una manera de “mover” filas usando el teclado, pero usar c & py insertar / eliminar filas usando el teclado debería ofrecer la misma funcionalidad:
- navegue a la primera celda (más a la izquierda) de la fila para mover;
- pegar CAMBIO+ESPACIO para seleccionar toda la fila;
- pegar CONTROL+C copiar la fila;
- pegar CONTROL+- para eliminar la fila actual;
- navegar a la fila de destino;
- pegar ALT+I para abrir el
Insert
menú; - pegar R para insertar una nueva fila (la fila actual se desplazará hacia abajo);
- pegar CONTROL+V para pegar la fila en su nuevo lugar.
Dado que las operaciones de cortar y pegar a veces son bastante molestas, puede crear una macro para cortar celdas y otro para pegarlas, moviendo el contenido existente hacia abajo.
Aquí hay un código muy simple para “mover” las celdas seleccionadas:
Option Explicit
Sub CopyAndCut
' ---------------------------------------------------------
' define variables
Dim document as object
Dim dispatcher as Object
Dim oSelections As Object
' ---------------------------------------------------------
' get access to the document and selections (if any)
document = ThisComponent.CurrentController.Frame
oSelections = ThisComponent.getCurrentSelection()
If IsNull(oSelections) Then Exit Sub
' ---------------------------------------------------------
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
' -------------------------------------------------------------
' Check the width of the selection - if 1024 columns, we assume
' the complete row was selected and should get deleted
If 1024 = oSelections.Columns.getCount() Then
dispatcher.executeDispatch(document, ".uno:DeleteRows", "", 0, Array())
End If
End Sub
Sub InsertWithMoveDown
' ---------------------------------------------------------
' define variables
Dim document as object
Dim dispatcher as object
' ---------------------------------------------------------
' get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
' ---------------------------------------------------------
' Paste contents with "Move Down" option
Dim args1(5) as New com.sun.star.beans.PropertyValue
args1(0).Name = "Flags"
args1(0).Value = "A"
args1(1).Name = "FormulaCommand"
args1(1).Value = 0
args1(2).Name = "SkipEmptyCells"
args1(2).Value = false
args1(3).Name = "Transpose"
args1(3).Value = false
args1(4).Name = "AsLink"
args1(4).Value = false
args1(5).Name = "MoveMode"
args1(5).Value = 0
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args1())
End Sub
Sub InsertWithMoveRight
' ---------------------------------------------------------
' define variables
Dim document as object
Dim dispatcher as object
' ---------------------------------------------------------
' get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
' ---------------------------------------------------------
' Paste contents with "Move Right" option
Dim args1(5) as New com.sun.star.beans.PropertyValue
args1(0).Name = "Flags"
args1(0).Value = "A"
args1(1).Name = "FormulaCommand"
args1(1).Value = 0
args1(2).Name = "SkipEmptyCells"
args1(2).Value = false
args1(3).Name = "Transpose"
args1(3).Value = false
args1(4).Name = "AsLink"
args1(4).Value = false
args1(5).Name = "MoveMode"
args1(5).Value = 1
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args1())
End Sub
Después de copiar el código a su biblioteca de usuario, simplemente asigne CopyAndCut
a, por ejemplo, Alt+C, InsertWithMoveDown
a, por ejemplo, Alt+V, y InsertWithMoveRight
a, por ejemplo, Alt+R (todos estos atajos están vacíos por defecto).
Ahora, puede seleccionar celdas o filas usando el mouse o el teclado, cortarlas usando Alt+C, muévase a la celda de destino y péguelas usando Alt+V o Alt+R.
Nos puedes añadir valor a nuestro contenido cooperando tu veteranía en las anotaciones.