Main Content


Create or overwrite MATLAB matrix with data from Microsoft Excel VBA variable



MLPutVar ML_var_name, VBA_var_name creates or overwrites matrix ML_var_name in MATLAB® workspace with data in VBA_var_name. Creates ML_var_name if it does not exist. If ML_var_name exists, this function replaces the contents with data from VBA_var_name.

out = MLPutVar ML_var_name, VBA_var_name lets you catch errors when executing MLPutVar. If MLPutVar fails, then out is a string containing error code. Otherwise, out is 0.


collapse all

Create (or overwrite) the MATLAB matrix K with the data in the VBA variable DataK:

Sub Put()
MLPutVar "K", DataK
End Sub

Input Arguments

collapse all

Name of MATLAB matrix to create or overwrite.

ML_var_name in quotes directly specifies the matrix name. ML_var_name without quotes specifies a VBA variable that contains the matrix name as a string.

Name of VBA variable whose contents are written to ML_var_name.

Use VBA_var_name without quotes.

Output Arguments

collapse all

0 if the command succeeded. Otherwise, a string containing error code.


  • Use MLPutVar only in a macro subroutine, not in a macro function or in a subroutine called by a function.

  • Empty numeric data cells within VBA_var_name become numeric zeros within the MATLAB matrix identified by ML_var_name.

  • If any element of VBA_var_name contains string data, VBA_var_name is exported as a MATLAB cell array. Empty string elements within VBA_var_name become NaNs within the MATLAB cell array.

  • To work with VBA code in Excel® with Spreadsheet Link™, you must enable Spreadsheet Link as a reference in the Microsoft® Visual Basic® Editor. For details, see Installation.

Version History

Introduced before R2006a