How to Automatically Print Data for Each Excel Drop-Down List Item
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.

- 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.
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.
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.
Press 'Alt + F11' on your keyboard to open the Microsoft Visual Basic for Applications window.
Click 'Insert' in the top menu and select 'Module'. This will open a blank window where you can write your macro.
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'.
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.

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. Enable Macros in WPS: Open your macro-enabled workbook (.xlsm) in WPS Spreadsheet and click 'Enable Macros' if prompted.
- 2. Access the VBA Editor: Navigate to the 'Tools' or 'Developer' tab and click on 'VBA Editor' to open the scripting environment.
- 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. Run the Automation: Click 'Macros' on the ribbon, select your new script, and hit 'Run' to automatically print all linked data items.

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.




