Fix Excel VBA Error When Creating an Existing Table in WPS Office
Question details
The user needs to prevent an Excel VBA macro from failing when it tries to create a table that already exists, such as Table7, on repeated runs.

- Product
- WPS Office Spreadsheets
- Device & OS
- not provided
- Scenario
- The user is running a VBA macro that creates a table in a workbook and it fails when executed a second time because Table7 already exists.
- Observed behavior
- The macro fails on a Range or table-related line on the second run because a table named Table7 already exists.
Open the workbook in WPS Office Spreadsheets and enable macros if prompted. In the VBA editor, identify the table creation line and confirm the hard-coded table name before applying any code change.
Update the VBA Macro to Check for and Reuse an Existing Table
Use this when the macro must run safely multiple times without failing on a hard-coded table name.
Hard-coding a table name such as Table7 fails on the second run because WPS Office Spreadsheets cannot create two tables with the same name. Adding an existence check lets the macro either reuse the existing table or delete it before creating a new one.
In WPS Office Spreadsheets, click the Developer tab and select Visual Basic to open the VBA editor. If the Developer tab is not visible, enable it from File > Options > Customize Ribbon.
Locate the macro code that creates the table, such as a line using ListObjects.Add or a Range.CreateTable call with the hard-coded name Table7.
Before the table creation line, insert code to check for the table name. For example, loop through ActiveSheet.ListObjects and test whether any .Name equals "Table7".
If the table exists, either set the existing table to a variable and reuse it, or delete it with ActiveSheet.ListObjects("Table7").Delete before creating the new table.
Press F5 or run the macro from the Developer tab twice in the same workbook to confirm it no longer fails on the second run.

Delete or Rename the Existing Table Before Running the Macro
Use this as a quick manual fix when you do not want to edit the VBA code.
Fix Excel VBA Table Exists Error in WPS Office Spreadsheets
Edit the macro in WPS Office Spreadsheets to check for an existing table name before creating a table, so the code runs safely every time.
- 1. Open the workbook in WPS Office Spreadsheets: Launch WPS Office, open the Excel macro-enabled workbook, and enable content or macros if the security prompt appears.
- 2. Open the VBA editor: Click the Developer tab and choose Visual Basic, or press Alt+F11 to open the Microsoft Visual Basic for Applications editor.
- 3. Locate the table creation code: Find the line that hard-codes Table7, such as ActiveSheet.ListObjects.Add or a Range.CreateTable call.
- 4. Add a table existence check: Insert an If block that checks ActiveSheet.ListObjects for Table7, then reuse or delete the existing table before creation.
- 5. Save and run the macro twice: Save the workbook as Excel Macro-Enabled Workbook, then run the macro twice to confirm the error no longer appears.

Frequently Asked Questions
Why does my Excel VBA macro fail only on the second run?
Because the first run creates a table named Table7. On the second run, Excel or WPS Office Spreadsheets cannot create another table with the same name, so the table creation line fails.
How do I check if a table named Table7 already exists in VBA?
Loop through ActiveSheet.ListObjects and compare each .Name property to "Table7", or use Evaluate("ISREF(Table7[#Headers])"). If the table exists, reuse or delete it before creating a new one.
Can I rename or delete Table7 without editing the macro?
Yes. Select the table, go to the Table Tools Design tab, type a new name in the Table Name box, or right-click the table and choose Delete. Then run the macro again.
Does WPS Office support Excel VBA macros?
WPS Office Spreadsheets supports VBA macros in many workflows. Open the VBA editor from the Developer tab to edit and test macros, and save in Excel Macro-Enabled Workbook format for compatibility.
How do I avoid hard-coded table names in VBA?
Create a unique table name at runtime using a timestamp or counter, or store the created table in an object variable and reuse it instead of assuming a fixed name.




