This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


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


MLPutVar ML_var_name, VBA_var_name
out = MLPutVar ML_var_name, VBA_var_name


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.

Input Arguments


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


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


collapse all

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

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


  • 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.

Introduced before R2006a