Cortar y pegar columnas en el rango de Excel con c #

Estoy tratando de mover la columna B al frente de la columna Q en una hoja de Excel como parte de un informe en el que estoy trabajando. Tengo experiencia en VBA, pero relativamente poco en c #, así que pasé la última hora en Google y no puedo encontrar una solución, siento que esto debería ser simple pero no puedo entenderlo.

Método uno, que da como resultado un mensaje "Error en el método de inserción de la clase de rango".

Excel.Range rngCut1 = JobLabourSheet.get_Range("B:B", Type.Missing);
Excel.Range rngPaste1 = JobLabourSheet.get_Range("Q:Q", Type.Missing);
            rngCut1.Columns.Cut(rngPaste1.EntireColumn.Insert(Excel.XlInsertShiftDirection.xlShiftToRight, rngCut1));

El método dos da como resultado un mensaje de "No se puede obtener una propiedad de corte de la clase Range".

Excel.Range rngCut1 = JobLabourSheet.get_Range("B:B", Type.Missing);
Excel.Range rngPaste1 = JobLabourSheet.get_Range("Q:Q", Type.Missing);
            rngCut1.Columns.Cut(rngPaste1.EntireColumn.Insert(Excel.XlInsertShiftDirection.xlShiftToRight, Missing.Value));

En el segundo método, cuando omito el CopyOrigin, obtengo el msg pero inserta una columna en blanco delante de la columna Q.

En VBA usaría lo siguiente:

Columns("B:B").Cut
Columns("Q:Q").Insert Shift:=xlToRight

Pero como dije, mi experiencia con c # es limitada en este momento, así que no tengo idea de cómo traducirla a c #

Respuestas a la pregunta(1)

Su respuesta a la pregunta