In this tutorial, I’ll show you how to use VBA to paste values in Excel instead of formulas. You can bind this VBA macro to the Ctrl+Shift+V keyboard shortcut to make pasting even faster. The macro is smart enough to paste unformatted text, too.
This is one of the best tips I’ve seen in quite a while. I can’t believe I didn’t think of it! I want you all to extend a big thank you to wellsrPRO power user, Mitch, for submitting this macro to me via the wellsrPRO add-in.
Reader’s Note: This article is part of a series featuring macros submitted by my incredible wellsrPRO community members. If you’re an existing wellsrPRO member, don’t forget to submit your own macro to the wellsrPRO community using the Share My Macros button. wellsrPRO users can automatically import this community submission, along with any other macro posted on wellsr.com, directly into their spreadsheet. Just look for “Community Submissions” in the Auto-Import dropdown menu.
VBA Paste Values or Unformatted Text
Created by Mitch
'==================================================================================================
' ## Paste as values or unformatted text from within or outside of Excel.
' Tip: assign this to a keyboard shortcut: Ctrl+Shift+V
' Developer: Mitch
'==================================================================================================
Sub PasteValues()
'// first test if pasting from within excel, if an error then
' proceed to paste as unformatted text
On Error Resume Next
'// Paste as values
Selection.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'// Paste as unformatted text
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False
End Sub
Make powerful macros with our free VBA Developer Kit Tutorials like this can be complicated. That’s why we created our free VBA Developer Kit and our Big Book of Excel VBA Macros to supplement this tutorial. Grab them below and you’ll be writing powerful macros in no time.
How the VBA Paste Values Macro Works
Mitch does a very clever thing with this macro. He tries to paste the contents of your clipboard two different ways. Let’s look at an example. In this example, the range
First, we’ll show what happens if you copy and paste the cells like normal, using Ctrl+c and Ctrl+v.
Excel tries to outsmart you by pasting the formulas down to the relative cells. The range
To do that, we’ll run Mitch’s PasteValues macro. The first thing his macro tries to do is paste the formulas as values. That works great! It will then try to paste the same content as unformatted text, but this won’t do anything and the output of the first attempt remains. Trying to paste cell values as unformatted text would normally generate an error, but Mitch bypassed the errors using the On Error Resume Next
code, so he gets these lovely results:
So why does Mitch try to paste the results as unformatted text if it doesn’t work?
Well, this is where Mitch’s brilliance really becomes evident. To show you what I mean, we’ll pretend we have a table in Microsoft Word, like the one below:
We want to copy and paste the values from the table into Excel. If we copy the table from word and paste it normally, using Ctrl+v, Excel will again try to outsmart you by pasting the format, ugly border and all, into Excel. You’ll be left with something rather hideous, like this:
Now we want to do the same thing, but instead of pasting with Ctrl+v, we want to paste using Mitch’s macro. Just like earlier, Mitch’s PasteValues macro will attempt to paste the contents of your clipboard as values only. Since the contents of your clipboard didn’t originate from Excel, this would normally produce an error.
However, since Mitch bypassed the errors using the On Error Resume Next
code, it tries the second method of pasting. This time, the second method, which pastes with unformatted text, works perfectly. No error is generated and you’re left with clean, unformatted, values pasted into Excel:
Creating your Keyboard Shortcut
The icing on the cake is when you bind the PasteValues macro to a keyboard shortcut so you can paste values into Excel using VBA with just a keystroke. I’ll show you how!
From your Developer Tab, click the “Macros” button (Alt+F8). Select “PasteValues” then click “Options.”
In the Macro Options screen, type a capital V. Your screen will look something like this:
Press OK and close the Macros screen. Now, anytime you want to paste values in Excel instead of formulas, all you have to do is press Ctrl+Shift+V on your keyboard! It’s so convenient!
If you’re a wellsrPRO user, you can save this macro to your favorites and import it into any spreadsheet you want so the option to paste values is always available.
That’s all for this tutorial. When you’re ready to take your VBA to the next level, subscribe using the form below.