VBA & Macro Problems

Why Excel Adds the @ Symbol to VBA User-Defined Functions

Camila MilosovichCamila Milosovich Nov 3, 2026 871 views

Question details

Users notice that Excel automatically inserts an @ symbol before VBA User-Defined Functions (UDFs) when opening workbooks created in older software versions.

Why Excel Adds the @ Symbol to VBA User-Defined Functions
Product
Microsoft Excel
Device & OS
not provided
Scenario
Opening an Excel workbook containing VBA User-Defined Functions created in an older version of Excel.
Observed behavior
Excel automatically adds the implicit intersection operator (@) to the formulas containing the VBA functions, modifying the visual formula.
Before you start

Check if your VBA user-defined function is intended to return a single numeric value or an array of values, as this determines whether the @ symbol is necessary for your calculation.

Solution 1Recommended

Keep or Remove the Implicit Intersection Operator (@)

Understand why the @ symbol appears and decide whether to keep or remove it based on your formula's expected output.

Modern versions of Excel use dynamic arrays and automatic spilling. To ensure compatibility with older workbooks, Excel adds the @ symbol (implicit intersection operator) to prevent legacy formulas from spilling across multiple cells.

If your VBA function is designed to return a single numerical or text value, the @ symbol will not affect the calculation and acts as a backwards-compatibility safeguard.

1
Locate the affected formula

Click on the cell containing your VBA User-Defined Function and look at the formula bar to see the @ symbol.

2
Verify single-value outputs

If the function returns the correct single value as it did in older Excel versions, you can safely leave the @ symbol in the formula without any further action.

3
Enable array spilling (if required)

If your function is specifically coded to return an array of values and you want it to spill into adjacent cells, click inside the formula bar, delete the @ symbol, and press Enter.

Keep or Remove the Implicit Intersection Operator (@)
Dynamic Array Spilling: Removing the @ symbol allows the formula to spill results into adjacent empty cells. Ensure there is enough empty space around the cell, otherwise you will encounter a #SPILL! error.
Free Microsoft Office alternative

Use WPS Office for Seamless VBA and Formula Compatibility

If you frequently work with legacy Excel workbooks and complex VBA macros, WPS Office provides a lightweight, highly compatible alternative that handles standard and array formulas without unexpected engine formatting changes.

  1. 1. Download WPS Office: Visit the official WPS website to download and install WPS Office Free on your computer.
  2. 2. Open your macro-enabled workbook: Launch WPS Spreadsheets, click on 'File' > 'Open', and select your existing .xlsm or .xlsx workbook containing the UDFs.
  3. 3. Enable macros and work seamlessly: Click 'Enable Macros' when prompted by the security warning to continue using your VBA User-Defined Functions exactly as intended.
Fully compatible with Microsoft Excel (.xlsx, .xlsm, .xls) file formatsRobust support for VBA macros and User-Defined FunctionsFamiliar user interface ensuring a seamless migration with zero learning curveFree and lightweight alternative to Microsoft Office
microsoft office alternative - wps office

Frequently Asked Questions

Can the @ symbol break my existing VBA functions?

No, the @ symbol actually forces the function to behave exactly as it did in older versions of Excel by returning a single value. It ensures your legacy formulas do not break or unexpectedly spill data across your spreadsheet.

How can I prevent Excel from automatically adding the @ symbol?

You cannot completely disable this automatic behavior, as it is a core feature of modern Excel's dynamic array engine when upgrading old files. However, you can manually remove the @ symbol from specific formulas if you want them to leverage the new spilling functionality.

What exactly is implicit intersection in Excel?

Implicit intersection is a calculation rule that reduces an array or a range of values to a single value based on the formula's row and column. In modern Excel, this behavior is explicitly shown using the @ symbol in front of functions, variables, or cell ranges.