Excel like a finance pro.
The functions, VBA, and shortcuts a finance operator actually uses — curated, with CFO examples. Prefer them pre-built? Grab a ready-made model.
Copy a range to another sheet
Append data from one sheet onto the bottom of another — the consolidate primitive.
1What it does
Finds the last row of the source and the first EMPTY row of the destination, then copies the source range and drops it just below whatever's already there — so repeated runs stack instead of overwrite. This 'find the next free row and append' move is how you build a running log or roll many sheets into one.
2The code
Sub CopyRange()
Dim src As Worksheet, dst As Worksheet
Dim lastSrc As Long, nextDst As Long
Set src = ThisWorkbook.Worksheets("Data")
Set dst = ThisWorkbook.Worksheets("Summary")
' Last row of the source, and the first EMPTY row of the destination — so
' you append below what's already there instead of overwriting it.
lastSrc = src.Cells(src.Rows.Count, "A").End(xlUp).Row
nextDst = dst.Cells(dst.Rows.Count, "A").End(xlUp).Row + 1
' Copy A2:C{last} from Data and drop it at the next free row on Summary.
src.Range("A2:C" & lastSrc).Copy dst.Cells(nextDst, "A")
Application.CutCopyMode = False
End SubPaste into the Visual Basic Editor (Alt + F11 → Insert → Module), then run and save as macro-enabled (.xlsm).
New to macros? Set up in 5 minutes▾
- 1
Don't see the Developer tab in the ribbon?
You don't strictly need it — Alt + F11 opens the editor directly — but it makes running macros easier.- Windows: File → Options → Customize Ribbon → tick Developer in the right-hand list → OK.
- Mac:Excel → Preferences → Ribbon & Toolbar → tick Developer → Save.
- 2
Paste in the code
Press Alt + F11 to open the Visual Basic editor, then Insert → Moduleand paste the snippet's code into the blank window. Close it with Alt + Q. - 3
Run it
Press Alt + F8, pick the macro's name, and click Run — that's it. (Pasted a custom function instead? Just type it into a cell like any built-in:=GrossMargin(B2, B3).) - 4
Keep the macro — save as .xlsm
File → Save As → Excel Macro-Enabled Workbook (.xlsm). A plain .xlsx silently drops the code when you save. - 5
Macros blocked?
Click Enable Content on the yellow bar. If you downloaded the file, you may first need to right-click it → Properties → tick Unblock → OK, then reopen.
Heads up: macros can't be undone with Ctrl + Z — save a copy before running one that changes your workbook.
3When you use it
- Append this month's data to a master / history sheet.
- Consolidate several tabs into one combined table.
- Build a running log that each run adds to.
4See it in action
A simulation — press Run to perform what the macro does to a sample workbook.
| Umbrella | $1,750 |
| Soylent | $920 |
| Acme | $1,200 |
| Globex | $800 |
5Pitfalls
Pasting over existing data because you started at a fixed cell (A2).
Fix: Compute the next free row on the destination: Cells(Rows.Count, "A").End(xlUp).Row + 1.
You only wanted the numbers but the formulas came along and broke.
Fix: Paste values instead: dst.Cells(nextDst, "A").PasteSpecial xlPasteValues, or set .Value between the ranges.
6No-code alternatives
- Range.Value = Range.Value — Move values with no clipboard: dst.Range(...).Value = src.Range(...).Value.
- Power Query append — For combining many sources on a schedule, an append query refreshes without code.
Rather not write macros? Wauvel's free tools generate branded, formula-driven Excel for you — no VBA required.
Learn the moves here — or let Wauvel run them on your numbers.
Get my free report →