Excel 2007 Cortar y pegar fórmula o valor sin cambiar el formato de celda: pegue las opciones en gris


0

Solo necesito cortar el contenido de la celda dejando el formato de la celda de origen sin cambios, y pegar el formato de celda de destino coincidente ... ¿Creo que no es una pregunta poco común?

He buscado pero la burbuja del filtro de búsqueda de Google me tiene - nada.

Pegado especial no está disponible para cortes? Las opciones de pegado están atenuadas.

Intenté grabar una macro para copiar con la barra lateral del portapapeles abierta (el valor copiado aparece allí), luego elimino la celda de origen mientras estoy en ella (dejando el formato) y luego pegando en la celda de destino haciendo clic en el elemento del portapapeles. Eso funciona al grabar, pero la macro grabada devuelve un error "Error al pegar el método Metodos de la clase Hoja de trabajo". Mientras el elemento está en la barra lateral, el portapapeles real se ha vaciado.

Parece que hay algunas soluciones posibles: 1: evitar que Excel extinga el portapapeles (¿de qué genio surgió la idea de eliminar el portapapeles? Supongo que tenemos suerte de que estuvieran trabajando en Excel, no en ventanas u oficinas ... ) 2: de alguna manera pegue el texto cortado como "valor" o "fórmula" o "HTML". 3. un código extraordinariamente largo para establecer el rango, copiar, pegar, volver a seleccionar el rango, eliminar, eliminar el nombre del rango, volver a seleccionar el rango de destino.

Estaría muy agradecido por la ayuda con este acertijo.

Respuestas:


0

Aquí hay una solución sin VBA / Makros:

En lugar de seleccionar y cortar una celda "completa", seleccione y corte el "contenido" de la celda (primero seleccione la celda, luego, por ejemplo, presione F2 y luego Ctrl + A). Después de usar "cortar", la celda estará vacía pero no se cambiará el formato.

Cuando pegue, su celda de destino mantendrá su formato original pero obtendrá el valor / fórmula de la celda de origen. Si desea transferir el formato del origen al destino, simplemente copie y pegue (solo pegue el formato).


0

¡Hecho! Con la ayuda de Cómo excluir rangos superpuestos de un rango? (Mover macro de contenido de celda)

Sub E____MoveSelectedCellsContentsOnlyKeepFormats_Ctrl_M()

Application.CutCopyMode = False 'clears any existing copy mode
On Error GoTo EXITSUB 'exits if cancel clicked

    Dim RANGE_TO_COPY As Range 'define inputbox variable
    Dim CELL_TO_PASTE_TO As Range 'define inputbox variable

'-----------name SOURCE range = selected before macro started
    Set RANGE_TO_COPY = Selection 'is this necessary, when not using inputbox?
        COPYSOURCE = RANGE_TO_COPY.Address(False, False) 'name the inputbox selection as a range

'=========== inputbox to select PASTE destination
    Set CELL_TO_PASTE_TO = Application.InputBox("select top left cell of range to PASTE TO, with the mouse", Default:=Selection.Address, Type:=8)

'------------- assigns name to the selected DESTINATION range
    PASTERANGE = CELL_TO_PASTE_TO.Address(False, False) 'name the inputbox selection as a range

'=========== action = COPY SOURCE
    Range(COPYSOURCE).Copy

'======================PASTE TO DESTINATION
'DEFAULT: PASTE FORMULAS AND NUMBER FORMATS (MATCHES DESTINATION FORMAT, keeps date/ etc original):

    Range(PASTERANGE) _
    .PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'formulas+number format

'======DELETE SOURCE CELL CONTENTS - remove if COPY required
'------------ loop - from superuser - deletes source but NOT pasterange overlap
Dim rgLoop As Range, rgToDelete As Range
        For Each rgLoop In Range(COPYSOURCE).Cells
            If Intersect(rgLoop, Range(PASTERANGE).Resize(Range(COPYSOURCE).Rows.Count, Range(COPYSOURCE).Columns.Count)) Is Nothing Then
                If rgToDelete Is Nothing Then Set rgToDelete = rgLoop Else Set rgToDelete = Union(rgToDelete, rgLoop)
            End If
        Next rgLoop

        rgToDelete.ClearContents 'deletes contents keeps formatting

EXITSUB:

End Sub

:-)


Aún por hacer: opción para pegar formatos de caracteres de celda (negrita, fuentes de símbolos, etc.) (ATM solo coincide con los formatos de celda de destino).
Piecevcake
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.