Por que no funciona en intercambio de celdas de una macro de excel

Hola, no tengo muchas nociones de programación, pero tengo algunas macros en excel para trabajar con los turnos de trabajo de personal, y he conseguido que todas funcionen en calc, excepto una que me hace un intercambio de celdas, que son los cambios que realiza el personal, como puedo hacer que me funione esa macro en calc.

Sub IntercambiarCeldas()
' IntercambiarCeldas Macro
' Intercambia los valores de 2 celdas
'
' Acceso directo: CTRL+j
'
    Dim Rng1 As Range, Rng2 As Range
Dim arr1 As Variant, arr2 As Variant

Set Rng1 = Application.Selection
Set Rng1 = Application.InputBox("Range1:", , Rng1.Address, Type:=8)

Application.ScreenUpdating = False
arr1 = Rng1.Value
arr2 = Rng2.Value
Rng1.Value = arr2
Rng2.Value = arr1
Application.ScreenUpdating = True
End Sub

Siempre menciona tu sistema operativo y versión de LibreOffice, ayuda a quien quiera ayudarte.

Es muy útil, también, que siempre menciones en que línea da el error. El soporte para VBA mejora con cada versión de LibreOffice, pero no es completo, sigo recomendando siempre, migrar el código. Copio el código de una macro que hace lo mismo, interncambiar el valor de un par de celdas.

IMPORTANTE: Las celdas deben estar previamente seleccionadas.

Sub swap_values()

    doc = ThisComponent
    sel = doc.CurrentSelection

    If sel(0).ImplementationName = "ScCellObj" Then
        c1 = sel(0)
        c2 = sel(1)
    Else
        If sel(0).Columns.Count = 2 Then
            c1 = sel(0).getCellByPosition(0,0)
            c2 = sel(0).getCellByPosition(1,0)
        Else
            c1 = sel(0).getCellByPosition(0,0)
            c2 = sel(0).getCellByPosition(0,1)      
        End If
    End If

    tmp = c1.String
    c1.String = c2.String
    c2.String = tmp

End Sub

Siento no haberlo descrito correctamente; no como tú, que lo has hecho perfecto y rápido. Me has solucionado el problema, que reducirá en mucho mi tiempo de trabajo.
Mil gracias