Please Note: This article is written for users of the following Microsoft Excel versions: 2007, 2010, 2013, 2016, 2019, and 2021. If you are using an earlier version (Excel 2003 or earlier), this tip may not work for you. For a version of this tip written specifically for earlier versions of Excel, click here: Swapping Two Strings.
Written by Allen Wyatt (last updated July 4, 2020)
This tip applies to Excel 2007, 2010, 2013, 2016, 2019, and 2021
If you do any serious macro programming, there will eventually come a time when you want to swap the values in two strings. In some versions of BASIC, there are commands that handle this, but there isn't in VBA. The following very simple technique should do the trick for most people:
TempString = MyString1 MyString1 = MyString2 MyString2 = TempString
When completed, the values in MyString1 and MyString2 have been swapped, and TempString doesn't matter, since it was intended (by this technique) as a temporary variable anyway.
If you prefer to not use a temporary variable (for whatever reason), you could use the following code to swap two strings:
MyString1 = MyString1 & MyString2 MyString2 = Left(MyString1, Len(MyString1) - Len(MyString2)) MyString1 = Right(MyString1, Len(MyString1) - Len(MyString2))
Note:
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (10207) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, and 2021. You can find a version of this tip for the older menu interface of Excel here: Swapping Two Strings.
Create Custom Apps with VBA! Discover how to extend the capabilities of Office 365 applications with VBA programming. Written in clear terms and understandable language, the book includes systematic tutorials and contains both intermediate and advanced content for experienced VB developers. Designed to be comprehensive, the book addresses not just one Office application, but the entire Office suite. Check out Mastering VBA for Microsoft Office 365 today!
Macros are great for working with strings, and one of the most commonly used string functions is Len. This tip explains ...
Discover MoreSometimes a macro command line can get very, very long. This can make it hard to understand when you look at it a month ...
Discover MoreWhen creating macros, it is often necessary to change from one type of data to another. Here's how you can change from a ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2021-07-13 09:37:06
Willy Vanhaelen
Here is another shorter way to swap the strings without the temp variable:
MyString1 = MyString1 & Chr(0) & MyString2
MyString2 = Split(MyString1, Chr(0))(0)
MyString1 = Split(MyString1, Chr(0))(1)
I used the Chr(0) delimiter because I am sure this will never appear in a string.
Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2026 Sharon Parq Associates, Inc.
Comments