VBA & Macro Problems

How to Paste Excel Content into Word While Preserving Formatting Using VBA

Natalie TaylorNatalie Taylor Nov 3, 2026 869 views

Question details

The user wants to automate pasting formatted text, such as an Excel scope of work, into a Word document via VBA while retaining the original layout, text styles, and bullets.

How to Paste Excel Content into Word While Preserving Formatting Using VBA
Product
Microsoft Word, Excel
Device & OS
not provided
Scenario
Automating document creation by transferring formatted scopes of work from spreadsheets into specific locations within a Word template.
Observed behavior
Needs a programmatic solution to locate a specific insertion point in Word and paste the clipboard content using the original Excel formatting rather than default Word styles.
Before you start

Ensure that the Developer tab is enabled in your Word ribbon to access VBA tools, and that you have already created a target Rich Text Content Control named 'Scope of Work' in your document.

Solution 1Recommended

Use VBA and PasteAndFormat wdFormatOriginalFormatting

Use a VBA macro to locate a specific Rich Text Content Control by title and paste the clipboard data while preserving its original formatting.

By utilizing the PasteAndFormat method with the wdFormatOriginalFormatting constant, VBA forces Word to ignore the destination styles and maintain the exact look of your copied Excel cells. Combining this with a Rich Text Content Control ensures the content lands exactly where you need it.

1
Insert a Rich Text Content Control

Open your Word document, place your cursor where the Excel data should go, navigate to the Developer tab, and insert a Rich Text Content Control. Open its Properties and set the Title to 'Scope of Work'.

2
Copy the Excel Content

Open your Excel workbook, select the formatted cells containing your scope of work (including bullets and layouts), and press Ctrl+C to copy them to your clipboard.

3
Add the VBA Macro

Return to Word and press ALT + F11 to open the VBA Editor. Insert a new Module and paste the following code: Sub ScratchMacro() Dim oRng As Range Set oRng = ActiveDocument.SelectContentControlsByTitle("Scope of Work").Item(1).Range oRng.PasteAndFormat wdFormatOriginalFormatting End Sub

4
Run the Macro

Run the macro from the VBA editor or assign it to a Quick Access Toolbar button. The Excel content will appear inside the Content Control with all original formatting preserved.

Use VBA and PasteAndFormat wdFormatOriginalFormatting
Automating the Trigger: For a more seamless workflow, you can trigger this macro automatically from the Document_ContentControlOnEnter event so that clicking into the 'Scope of Work' control pastes the data automatically.
Advanced Document Automation

Easily Run Macros and Automate Workflows with WPS Office

WPS Office provides robust support for VBA and macros, allowing you to seamlessly transfer and format data between spreadsheets and documents. Experience the power of office automation in a lightweight and cost-effective suite.

  1. 1. Open WPS Office: Launch WPS Office and open your spreadsheet and document side-by-side using the tabbed workspace.
  2. 2. Enable Developer Tools: Navigate to the settings menu and enable Developer tools to access the integrated VBA Editor.
  3. 3. Execute the Macro: Paste your VBA transfer code into the editor and run it to instantly migrate formatted data between the spreadsheet and the document.
Fully compatible with Microsoft Word (.docx) and Excel (.xlsx) formatsBuilt-in VBA editor for running existing macros seamlesslyTabbed interface to manage both documents and spreadsheets in one windowFree to download and lightweight on system resources
microsoft office alternative - wps office

Frequently Asked Questions

Why does regular pasting lose my Excel bullets and layout?

Default paste settings in Word often adapt to match the destination formatting or paste as plain text. To keep the exact spreadsheet layout, you must explicitly use the 'Keep Source Formatting' option or use the wdFormatOriginalFormatting constant in VBA.

How do I assign a VBA macro to the Quick Access Toolbar?

Go to Word Options > Quick Access Toolbar. Select 'Macros' from the 'Choose commands from' drop-down list, select your specific macro (e.g., ScratchMacro), and click 'Add'.

What is a Rich Text Content Control?

It is a designated container block in Word that can hold text and advanced formatting. By assigning it a title, you can programmatically locate it via VBA to accurately place and format your pasted content.