How to Add the Same Row to Matching Worksheets using Excel VBA
Question details
The user needs to automate a process to copy a specific row from a source worksheet to other worksheets that share a matching value in cell C11, while maintaining worksheet categories and ordering.
- Product
- Microsoft Excel
- Device & OS
- not provided
- Scenario
- Updating multiple worksheets simultaneously based on a specific cell's criteria using a macro.
- Observed behavior
- The user is attempting to run a VBA macro to perform the task but encountered an 'Invalid character' compile error when renaming the worksheet reference in the code.
Ensure you have the Developer tab enabled in your ribbon and verify the exact spelling of your source worksheet name before writing the macro.
Create a VBA Macro to Loop and Copy Rows
Use a VBA script to iterate through all worksheets, verify the cell C11 value, and copy the source row to matching sheets without triggering syntax errors.
When working with multiple sheets, manually copying data is inefficient. A VBA loop can automate this process by checking a specific condition (e.g., cell C11) before pasting the row.
To avoid the 'Compile error: Invalid character', ensure that any explicit worksheet names referenced in your code are properly enclosed in double quotation marks.
Press Alt + F11 on your keyboard to launch the Visual Basic for Applications (VBA) editor.
Click 'Insert' from the top menu and select 'Module' to create a blank script window.
Write a procedure (e.g., Sub UpdateWorksheets) that uses 'For Each ws In ThisWorkbook.Worksheets' to loop through the sheets, and add an 'If' statement comparing ws.Range("C11").Value to your source sheet's C11 value.
Ensure your source sheet is referenced with valid syntax, such as Worksheets("Preco_por_supermercado"), using straight double quotes.
Close the VBA editor, press Alt + F8 in your workbook, select the 'UpdateWorksheets' macro, and click 'Run'.
Automate Worksheets Easily with WPS Spreadsheet
WPS Spreadsheet fully supports VBA macros, allowing you to run your existing Excel scripts seamlessly. You can easily automate copying rows across matching sheets without changing your workflow.
- 1. Open your Workbook: Launch WPS Spreadsheet and open your macro-enabled workbook (.xlsm).
- 2. Access the Developer Tab: Navigate to the 'Developer' tab on the top ribbon.
- 3. Open the Macro Dialog: Click on 'Macros' or press Alt + F8 to access your VBA scripts.
- 4. Run the Script: Select your worksheet-updating macro from the list and click 'Run' to apply the changes.

Frequently Asked Questions
Why do I get a Compile error: Invalid character in my VBA macro?
This error typically occurs if you forget to enclose a worksheet name in double quotation marks (e.g., writing Worksheets(SheetName) instead of Worksheets("SheetName")), or if you copy-pasted smart quotes (“ ”) from a website instead of using standard straight quotes (" ").
How do I quickly test my macro for syntax errors before running it?
In the VBA Editor (Alt + F11), click on the 'Debug' menu at the top and select 'Compile VBAProject'. This will check your code and highlight any syntax or invalid character errors immediately.
Does WPS Office support Excel VBA macros?
Yes, WPS Office supports VBA macros. You can run, edit, and create macros in WPS Spreadsheet just as you would in Microsoft Excel, and it fully supports macro-enabled formats like .xlsm.




