Kaydet (Commit) df1dc6ed authored tarafından Markus Mohrhard's avatar Markus Mohrhard

fix for fdo#41381: local range names don't work with INDIRECT

üst ff33b0be
......@@ -271,6 +271,9 @@ public:
::rtl::OUString& rString,
const ::rtl::OUString& rXMLRange,
ScDocument* pDoc );
// String to RangeData core
static ScRangeData* GetRangeDataFromString(const rtl::OUString& rString, const SCTAB nTab, const ScDocument* pDoc);
};
//------------------------------------------------------------------------
......
......@@ -69,6 +69,7 @@
#include "cellkeytranslator.hxx"
#include "lookupcache.hxx"
#include "rangenam.hxx"
#include "rangeutl.hxx"
#include "compiler.hxx"
#include "externalrefmgr.hxx"
#include <basic/sbstar.hxx>
......@@ -6715,11 +6716,7 @@ void ScInterpreter::ScIndirect()
{
do
{
ScRangeName* pNames = pDok->GetRangeName();
if (!pNames)
break;
ScRangeData* pData = pNames->findByName(sRefStr);
ScRangeData* pData = ScRangeStringConverter::GetRangeDataFromString(sRefStr, nTab, pDok);
if (!pData)
break;
......
......@@ -1017,6 +1017,25 @@ void ScRangeStringConverter::GetStringFromXMLRangeString( OUString& rString, con
rString = aRetStr.makeStringAndClear();
}
ScRangeData* ScRangeStringConverter::GetRangeDataFromString(const rtl::OUString& rString, const SCTAB nTab, const ScDocument* pDoc)
{
ScRangeName* pLocalRangeName = pDoc->GetRangeName(nTab);
ScRangeData* pData = NULL;
if(pLocalRangeName)
{
pData = pLocalRangeName->findByName(rString);
}
if (!pData)
{
ScRangeName* pGlobalRangeName = pDoc->GetRangeName();
if (pGlobalRangeName)
{
pData = pGlobalRangeName->findByName(rString);
}
}
return pData;
}
//========================================================================
ScArea::ScArea( SCTAB tab,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment