How to Move Values Between Excel Tables Using Buttons and VBA
Question details
The user wants to automate the process of transferring a string from a source table to the next available empty row in a destination table using an assigned button and VBA.

- Product
- Excel
- Device & OS
- not provided
- Scenario
- Streamlining data entry and automating workflows across different tables within the same workbook.
- Observed behavior
- The user needs a functional macro that accurately locates the destination table's next empty row, pastes the source value there, and is executable via a clickable button.
Ensure your Excel workbook is saved as a Macro-Enabled Workbook (.xlsm) and that macros are enabled in your Trust Center or Developer settings.
Create and Assign a Data Transfer Macro to a Form Control Button
Write a VBA script to find the next empty row in the destination table and assign this script to a clickable button for automatic data transfer.
This approach uses basic VBA commands to copy data and locate the bottom of your destination data range. It guarantees that you don't overwrite existing records when moving data.
Press ALT + F11 to launch the VBA Editor. Click 'Insert' in the top menu and select 'Module' to create a blank workspace for your script.
Enter a macro, for example: 'Sub TransferData()'. Define your source value range. Then, find the next empty row in the destination column using code like 'NextRow = Cells(Rows.Count, "C").End(xlUp).Row + 1'. Assign the source value to the destination cell.
Return to your Excel worksheet. Navigate to the Developer tab, click 'Insert', and select the Button icon under 'Form Controls'.
Draw the button on your spreadsheet. A dialog box will instantly appear prompting you to assign a macro. Select 'TransferData' (or your macro's name) and click OK.
Click the newly created button to execute the macro. Verify that the source string successfully populates the next available row in your target table.

Automate Data Transfer with WPS Spreadsheet VBA
WPS Office offers native support for VBA macros, allowing you to easily create automated buttons and scripts to transfer data seamlessly between tables.
- 1. Open Your Workbook: Launch WPS Spreadsheet and navigate to the Developer tab on the top ribbon.
- 2. Access the VBA Editor: Click the 'Macros' or 'VB Editor' button (or press ALT + F11) to open the familiar coding environment.
- 3. Assign Controls: Insert a Form Control button directly into your sheet and assign your written macro to enable one-click data transfers.

Frequently Asked Questions
How do I dynamically find the next empty row in VBA?
You can use the widely accepted VBA snippet 'NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1'. This command starts at the very bottom of column 1 (Column A), looks upwards to find the last cell with data, and adds 1 to target the empty row right below it.
Why does my macro disappear when I close the Excel file?
Standard Excel files (.xlsx) cannot store VBA code. You must use 'Save As' and select 'Excel Macro-Enabled Workbook (*.xlsm)' to preserve your scripts. Without this, your macros will be deleted upon closing.
Can I transfer data to a different worksheet within the same workbook?
Yes. You need to qualify your ranges with the specific sheet names in your VBA code. For example, use 'Sheets("DestinationSheet").Cells(NextRow, 1).Value = Sheets("SourceSheet").Range("A1").Value'.
Why is my macro button selecting instead of clicking?
This happens when 'Design Mode' is still active in your Developer tab. Click the 'Design Mode' button to toggle it off, which will lock the button in place and allow it to execute the macro upon being clicked.




