summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sc/source/core/tool/interpr1.cxx41
1 files changed, 41 insertions, 0 deletions
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index 862e92b05670..a76d2b6c2526 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -4174,6 +4174,20 @@ void ScInterpreter::ScColumns()
}
}
break;
+ case svExternalSingleRef:
+ PopError();
+ nVal++;
+ break;
+ case svExternalDoubleRef:
+ {
+ sal_uInt16 nFileId;
+ String aTabName;
+ ScComplexRefData aRef;
+ PopExternalDoubleRef( nFileId, aTabName, aRef);
+ nVal += static_cast<sal_uLong>(aRef.Ref2.nTab - aRef.Ref1.nTab + 1) *
+ static_cast<sal_uLong>(aRef.Ref2.nCol - aRef.Ref1.nCol + 1);
+ }
+ break;
default:
PopError();
SetError(errIllegalParameter);
@@ -4218,6 +4232,20 @@ void ScInterpreter::ScRows()
}
}
break;
+ case svExternalSingleRef:
+ PopError();
+ nVal++;
+ break;
+ case svExternalDoubleRef:
+ {
+ sal_uInt16 nFileId;
+ String aTabName;
+ ScComplexRefData aRef;
+ PopExternalDoubleRef( nFileId, aTabName, aRef);
+ nVal += static_cast<sal_uLong>(aRef.Ref2.nTab - aRef.Ref1.nTab + 1) *
+ static_cast<sal_uLong>(aRef.Ref2.nRow - aRef.Ref1.nRow + 1);
+ }
+ break;
default:
PopError();
SetError(errIllegalParameter);
@@ -4258,6 +4286,19 @@ void ScInterpreter::ScTables()
PopError();
nVal++;
break;
+ case svExternalSingleRef:
+ PopError();
+ nVal++;
+ break;
+ case svExternalDoubleRef:
+ {
+ sal_uInt16 nFileId;
+ String aTabName;
+ ScComplexRefData aRef;
+ PopExternalDoubleRef( nFileId, aTabName, aRef);
+ nVal += static_cast<sal_uLong>(aRef.Ref2.nTab - aRef.Ref1.nTab + 1);
+ }
+ break;
default:
PopError();
SetError( errIllegalParameter );