VBA & Macro Problems

How to Automatically Print Data for Each Excel Drop-Down List Item

Amos GikundaAmos Gikunda Oct 16, 2026 869 views

Question details

The user wants to batch print the linked data range or report for every single item in an Excel drop-down list automatically, rather than selecting and printing them one by one.

How to Automatically Print Data for Each Excel Drop-Down List Item
Product
Excel
Device & OS
not provided
Scenario
Batch printing dynamic reports, forms, or dashboards generated by a drop-down list selection.
Observed behavior
Manually selecting each drop-down item, waiting for the data to update, and printing the sheet is time-consuming. An automated solution is required to output all variations at once.
Before you start

Ensure your worksheet is set up with a working drop-down list (using Data Validation) and that the corresponding data formulas (such as VLOOKUP or XLOOKUP) successfully update the printable area when a new item is selected.

Solution 1Recommended

Use a VBA Macro to Loop Through Drop-Down Items and Print

A VBA macro can automate the process of selecting each item from your data validation list, triggering the formulas to update, and sending the print job to your printer automatically.

Since native Excel does not have a built-in 'batch print from drop-down' button, writing a short Visual Basic for Applications (VBA) script is the standard approach. The macro works by reading the source range of your drop-down list, cycling through each value, placing it in the drop-down cell, calculating the sheet, and printing the designated area.

1
Open the VBA Editor

Press 'Alt + F11' on your keyboard to open the Microsoft Visual Basic for Applications window.

2
Insert a New Module

Click 'Insert' in the top menu and select 'Module'. This will open a blank window where you can write your macro.

3
Write the Loop and Print Code

Paste your VBA code. The code must define the source range of your list items (e.g., Sheets("Data").Range("A1:A10")), the cell containing the drop-down (e.g., Range("B1")), and use a 'For Each' loop to iterate through the source range. Inside the loop, assign the current cell value to the drop-down cell, then execute 'ActiveSheet.PrintOut'.

4
Run the Batch Print Macro

Close the VBA editor. Go to the 'Developer' tab, click 'Macros', select the macro you just created, and click 'Run'. Your printer will now output a separate page for each drop-down item.

Use a VBA Macro to Loop Through Drop-Down Items and Print
Customize Cell References: You must replace the placeholder cell references in your VBA code with the actual cell references used in your worksheet. Ensure your print area is also correctly set under Page Layout > Print Area.
Automate with WPS Office

Batch Print Drop-Down Data Easily with WPS Spreadsheet

WPS Spreadsheet provides robust macro support, allowing you to run VBA scripts to automate repetitive printing tasks and dynamic reports just like in Microsoft Excel.

  1. 1. Enable Macros in WPS: Open your macro-enabled workbook (.xlsm) in WPS Spreadsheet and click 'Enable Macros' if prompted.
  2. 2. Access the VBA Editor: Navigate to the 'Tools' or 'Developer' tab and click on 'VBA Editor' to open the scripting environment.
  3. 3. Insert the Printing Script: Go to Insert > Module, paste your loop-and-print macro code tailored to your drop-down list cells, and save.
  4. 4. Run the Automation: Click 'Macros' on the ribbon, select your new script, and hit 'Run' to automatically print all linked data items.
Fully compatible with Microsoft Excel (.xlsx and .xlsm) formats.Supports VBA macros for advanced automation and scripting.Seamless batch printing capabilities for dynamic reports.Lightweight software with a familiar, easy-to-navigate interface.
microsoft office alternative - wps office

Frequently Asked Questions

Can I batch print drop-down items without using VBA?

No, native Excel requires you to manually select each item from the drop-down list and print the sheet one at a time. To fully automate looping through a data validation list and printing the results, a VBA macro is required.

How do I find the source list of my drop-down to use in the macro?

Select the cell containing the drop-down list, go to the 'Data' tab, and click 'Data Validation'. Look at the 'Source' field in the dialog box to find the exact cell range or named range containing your list items.

Why is my macro printing the same data repeatedly?

This happens if Excel is not recalculating formulas between print jobs. Ensure that your calculation mode is set to Automatic, or add the 'Application.Calculate' command inside your VBA loop right before the 'PrintOut' line so the data range updates.

How do I save my workbook so the printing macro works next time?

You must save your file as an Excel Macro-Enabled Workbook (.xlsm). If you save it as a standard Excel Workbook (.xlsx), the VBA code you wrote will be permanently removed.