Excel 2007 Recortar e colar a fórmula ou o valor sem alterar a formatação da célula - cole as opções esmaecidas

0

Só preciso cortar o conteúdo da célula deixando o formato da célula de origem inalterado e colar a formatação da célula de destino correspondente ... Acho que não é incomum perguntar?

Eu pesquisei, mas a bolha do filtro de pesquisa do Google me pegou - nada.

Colar especial não está disponível para cortes? As opções de colagem estão esmaecidas.

Eu tentei gravar uma macro para copiar com a barra lateral da área de transferência aberta (o valor copiado aparece lá), depois excluo a célula de origem enquanto estou nela (deixando o formato) e depois colando na célula de destino clicando no item da área de transferência. Isso funciona ao gravar, mas a macro gravada retorna um erro "PasteSpecial methos da classe Worksheet falhou". Enquanto o item está na barra lateral, a área de transferência real foi esvaziada.

Parece haver algumas soluções possíveis: 1: parar a área de transferência sendo esvaziada pelo excel, (que gênio surgiu com a idéia de excluir a área de transferência? Eu suponho que estamos apenas com sorte que eles estavam trabalhando no excel, não janelas ou escritório ...) 2: de alguma forma, cole o texto recortado como "valor" ou "fórmula" ou "HTML". 3. um código extraordinariamente longo para definir o intervalo, copiar, colar, selecionar novamente, excluir, remover o nome do intervalo, selecionar novamente o intervalo de destino!

Ficaria muito grato por ajudar com este enigma.

    
por Piecevcake 30.06.2018 / 05:25

2 respostas

0

Feito isso! Com a ajuda de Como excluir intervalos se sobrepõem de um intervalo? (Mover a macro do conteúdo da célula)

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

: -)

    
por 10.10.2018 / 23:22
0

Aqui está uma solução sem o VBA / Makros:

Em vez de selecionar e cortar uma célula "inteira", selecione e corte o "conteúdo" da célula (primeiro selecione a célula e, por exemplo, pressione F2 e depois Ctrl + A). Depois de usar "cut", a célula ficará vazia, mas o formato não será alterado.

Quando você cola, sua célula de destino manterá seu formato original, mas obterá o valor / fórmula da célula de origem. Se você quiser transferir o formato da origem para o destino, basta usar copiar e colar (somente colando o formato).

    
por 07.07.2018 / 23:06