How to swap contents between rows or columns in Excel?
Sometimes, when we use a worksheet, we need to swap the rows or the columns. For example, I want to exchange column A with column D, the first thing that came to my mind is to use copy and paste command. In fact, except the copy and paste, there are some other methods to solve this problem.
Swap rows or columns with VBA code
swap rows or columns quickly and conveniently with Kutools for Excel
Transpose data from rows to multiple columns with Kutools for Excel
Comparison of Methods for Swapping Rows, Columns, or Ranges
| Feature | VBA | Kutools Swap Ranges | Kutools Transform Range |
|---|---|---|---|
| Swap two rows | ✔ | ✔ | ✘ |
| Swap two columns | ✔ | ✔ | ✘ |
| Swap two ranges | ✔ | ✔ | ✘ |
| Swap across worksheets or workbooks | Same workbook only | ✔ | ✘ |
| Preserve cell formatting | ✘ (Values only) | ✔ | N/A |
| Supports Undo (Ctrl + Z) | ✘ | ✔ | ✔ |
| Requires VBA programming | ✔ | ✘ | ✘ |
| Convert rows to multiple columns | ✘ | ✘ | ✔ |
| Setup complexity | Insert and run VBA code | Select two ranges and click OK | Simple wizard interface |
| Best for | Users familiar with VBA | Quickly swapping rows, columns, or ranges while keeping formatting | Reshaping worksheet layouts |
| Ease of use | Moderate | Very easy | Very easy |
Swap rows or columns with VBA code
1. Hold down the ALT + F11 keys, and it opens the Microsoft Visual Basic for Applications window.
2. Click Insert > Module, and paste the following code in the Module Window.
Sub SwapTwoRange()
'Updateby Extendoffice
Dim Rng1 As Range, Rng2 As Range
Dim arr1 As Variant, arr2 As Variant
xTitleId = "KutoolsforExcel"
Set Rng1 = Application.Selection
Set Rng1 = Application.InputBox("Range1:", xTitleId, Rng1.Address, Type:=8)
Set Rng2 = Application.InputBox("Range2:", xTitleId, Type:=8)
Application.ScreenUpdating = False
arr1 = Rng1.Value
arr2 = Rng2.Value
Rng1.Value = arr2
Rng2.Value = arr1
Application.ScreenUpdating = True
End Sub 3. Then click
button to run the code, a dialog is popped out for you to select the two ranges you want to swap with, see screenshots:
![]() |
![]() |
![]() |
4. After clicking Ok, the two ranges are swapped. See screenshots:
![]() | ![]() | ![]() |
Swap rows or columns quickly and conveniently with Kutools for Excel
The code may be difficult for starters of Excel, is there a simple way to do it quickly and time-saving. Of course, Kutools for Excel can help you swap rows or columns quickly and comfortably.
If you have installed Kutools for Excel, you can swap two columns or rows quickly.
1. Click Kutools > Range > Swap ranges,see screenshot:

2. In the Swap Ranges dialog box, click
button from Swap Range 1 to select column A that you want to swap, and then click
button from Swap Range 2 to select column D.( Note: The ranges for swapping must be the same size.)

3. Then click OK. The two columns have been swapped and the cell formatting is swapped as well. See screenshots:
![]() | ![]() | ![]() |
With this Swap Ranges utility, you can not only swap rows or columns but also swap contents of two ranges. Click here to know more about this feature.
Kutools for Excel - Supercharge Excel with over 300 essential tools, making your work faster and easier, and take advantage of AI features for smarter data processing and productivity. Get It Now
Demo: Swap rows or columns quickly with Kutools for Excel
Conclusion
The VBA method can swap two rows, columns, or ranges by exchanging their values, but it requires creating and running macro code each time. It also swaps only the values and does not preserve the original cell formatting.
Kutools for Excel's Swap Ranges provides a much more convenient solution. It can swap rows, columns, or any two equally sized ranges with just a few clicks while preserving cell formatting. It also supports swapping ranges across different worksheets and workbooks and allows you to undo the operation immediately if needed.
If your goal is not to swap two ranges but to reorganize worksheet layouts, Kutools Transform Range offers additional flexibility by converting rows into multiple columns or columns into multiple rows, making it an excellent companion tool for advanced worksheet restructuring.
Transpose data from rows to multiple columns with Kutools for Excel
With Kutools for Excel’s Transform Range feature, you can quickly transpose the data from one row or column to multiple rows or columns and vice versa.

Related article:
How to quickly swap contents of two cells in Excel?
Best Office Productivity Tools
Supercharge Your Excel Skills with Kutools for Excel, and Experience Efficiency Like Never Before. Kutools for Excel Offers Over 300 Advanced Features to Boost Productivity and Save Time. Click Here to Get The Feature You Need The Most...
Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier
- Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
- Open and create multiple documents in new tabs of the same window, rather than in new windows.
- Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
All Kutools add-ins. One installer
Kutools for Office suite bundles add-ins for Excel, Word, Outlook & PowerPoint plus Office Tab Pro, which is ideal for teams working across Office apps.
- All-in-one suite — Excel, Word, Outlook & PowerPoint add-ins + Office Tab Pro
- One installer, one license — set up in minutes (MSI-ready)
- Works better together — streamlined productivity across Office apps
- 30-day full-featured trial — no registration, no credit card
- Best value — save vs buying individual add-in







