summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
Diffstat (limited to 'sc')
-rw-r--r--sc/source/core/tool/interpr4.cxx11
1 files changed, 10 insertions, 1 deletions
diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx
index 070510deb1f6..cc3672cbdbeb 100644
--- a/sc/source/core/tool/interpr4.cxx
+++ b/sc/source/core/tool/interpr4.cxx
@@ -1527,7 +1527,7 @@ bool ScInterpreter::ConvertMatrixParameters()
case svExternalDoubleRef:
{
formula::ParamClass eType = ScParameterClassification::GetParameterType( pCur, nParams - i);
- if (eType == formula::ParamClass::Array)
+ if (eType == formula::ParamClass::Value || eType == formula::ParamClass::Array)
{
sal_uInt16 nFileId = p->GetIndex();
OUString aTabName = p->GetString().getString();
@@ -1543,6 +1543,15 @@ bool ScInterpreter::ConvertMatrixParameters()
ScMatrixRef pMat = pTemp->GetMatrix();
if (pMat)
{
+ if (eType == formula::ParamClass::Value)
+ { // only if single value expected
+ SCSIZE nC, nR;
+ pMat->GetDimensions( nC, nR);
+ if (nJumpCols < nC)
+ nJumpCols = nC;
+ if (nJumpRows < nR)
+ nJumpRows = nR;
+ }
formula::FormulaToken* pNew = new ScMatrixToken( pMat);
pNew->IncRef();
pStack[ sp - i ] = pNew;