I use Excel to crunch numbers, so I usually don't want to copy the formatting along with the text. But this is the default. Is there a way to default to always match destination formatting when pasting into Excel?
Can't set the default, but more convenient than fiddling with the paste options after each paste:
If you press the Backspace or F2 key before pasting text it will paste the text only, retaining the existing formatting.
I wonder why this works?
Paste with ctrl+V then hit ctrl to open a one key menu with formatting options. By default the letter is V to set the pasted information to the destination cell's former/proper formatting.
A little weird that the ctrl+V and ctrl, then V have such disparate effects, but nonetheless to past and keep the destination formatting:
Copy cell or range of cells, paste to new locations using ctrl+V like you would to move the source formatting, then hit ctrl then V to select a change from the current source formatting into the destination formatting.
ctrl+V, then ctrl, then V. a much quicker method than point and click.
I don't believe there is a way to change the default. However, what I've found very convenient is to add the "Paste Formulas" button (which will automatically keep the destination formatting) to the Quick Access Toolbar. To do this:
- right click on the Quick Access Toolbar (the area in the top left with the Save, Undo and Redo buttons)
- click "Customize Quick Access Toolbar..."
- in the "Choose commands from:" dropdown menu, select "All Commands"
- scroll down to "Paste Formulas" and double click on it
- click OK
Now when you copy a cell or range, you can just use Alt+4 (assuming the new button is the fourth in the Quick Access Toolbar) to paste wherever you want and keep the destination formatting.
In addition to my answer above, there is one more way to achieve this.
Go to File > Options > Quick Access Toolbar.
Select "Paste and keep source formatting", then "Add" the same. You can also use the positioning arrows to position this option to the top. Advantage of this is, to paste the item you have copied, you can use the shortcut ALT+1 shortcut: (You don't have to use CTRL+V)
According to the MSDN Excel PasteType reference, there is no "paste-matching-destination-theme", although you could paste just the values or formulas.
Similar to the instructions found here, you could add a macro to override the CTRL+V behaviour.
The steps are as follows (embellished slightly from the source page):
- press ALT+F11 to open the Microsoft Visual Basic for Applications window
select Insert > Module from the menu, and paste the following code in the Module Window:
Sub PasteAsValue() Selection.PasteSpecial Paste:=xlPasteValues End Sub
- (optional) rename the module (in the lower left Properties pane)
- close the window (click the "X" button at top right)
- press ALT+F8 to open the Macro dialog box
- select the "PasteAsValue" macro (or whatever name the macro created in step #2 has) and click the "Options..." button
- in the Macro Options dialog box, type "v" in the box, and (optionally) any description
- click the "OK" button to commit the changes and exit the Macro Options dialog box
- click the "Cancel" button to exit the Macro dialog box (and avoid running and any macros)
- save the Excel spreadsheet (Excel will throw a warning if the spreadsheet is not already an
.xlsm"Macro-enabled spreadsheet" - click "No" to have Excel prompt for a different file name and file type to save as)
This is another work-around I have found, if you can switch from Excel to Google Sheets:
- Ctrl-Shift-V: Paste values only
I just double-checked, and Excel 2016 doesn't have this shortcut yet (by default).
Not so much an answer, as an extended comment.
First, Microsoft have gone to extraordinary lengths to remove any trace of 'Paste and match destination formatting' in 2019, for reasons best known to themselves. I have to go back to Excel 2010 to do this.
Second, it seems that this can't be done for some data. If you have a value which is meant to be an elapsed time ('27.16', for example, which you interpret as seconds), then you can't paste it into a cell which is custom-formatted as, say, [m]:ss.00 (ie. an elapsed time, with minutes, seconds, and 2 decimal places), because you haven't got a number of minutes and a colon in the source data. This also seems to be a general problem with the destination formatted as an elapsed time, whether or not you have a missing field in the source.