sc/qa/unit/helper/qahelper.cxx |    9 
 sc/qa/unit/helper/qahelper.hxx |    1 
 sc/qa/unit/ucalc_copypaste.cxx | 3227 +++++++++++++++++++++--------------------
 3 files changed, 1667 insertions(+), 1570 deletions(-)

New commits:
commit cb6e1d160d946aeb4693b24236e5b83d8fcf0c3c
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Mon Nov 21 15:05:12 2022 +0100
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Mon Nov 21 21:14:43 2022 +0100

    CppunitTest_sc_ucalc_copypaste: use GetFormula directly
    
    Change-Id: Id23a07d3d7442119676f8628d1e394914461b678
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143034
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sc/qa/unit/helper/qahelper.cxx b/sc/qa/unit/helper/qahelper.cxx
index 28d2b1243e8c..6fd30e2398a4 100644
--- a/sc/qa/unit/helper/qahelper.cxx
+++ b/sc/qa/unit/helper/qahelper.cxx
@@ -872,17 +872,12 @@ OUString 
ScSimpleBootstrapFixture::getRangeByName(ScDocument* pDoc, const OUStri
     return pName->GetSymbol(pDoc->GetGrammar());
 }
 
-OUString ScSimpleBootstrapFixture::getFormula(ScDocument* pDoc, SCCOL nCol, 
SCROW nRow, SCTAB nTab)
-{
-    return pDoc->GetFormula(nCol, nRow, nTab);
-}
-
 #if CALC_DEBUG_OUTPUT != 0
 void ScSimpleBootstrapFixture::printFormula(ScDocument* pDoc, SCCOL nCol, 
SCROW nRow, SCTAB nTab, const char* pCaption)
 {
     if (pCaption != nullptr)
         cout << pCaption << ", ";
-    cout << nCol << "/" << nRow << ": " << getFormula(pDoc, nCol, nRow, nTab);
+    cout << nCol << "/" << nRow << ": " << pDoc->GetFormula(nCol, nRow, nTab);
     cout << endl;
 }
 #else
@@ -902,7 +897,7 @@ void ScSimpleBootstrapFixture::printRange(ScDocument* pDoc, 
const ScRange& rRang
         {
             ScAddress aPos(nCol, nRow, rRange.aStart.Tab());
             ScRefCellValue aCell(*pDoc, aPos);
-            OUString aVal = printFormula ? getFormula(pDoc, nCol, nRow, 
rRange.aStart.Tab())
+            OUString aVal = printFormula ? pDoc->GetFormula(nCol, nRow, 
rRange.aStart.Tab())
                                          : 
ScCellFormat::GetOutputString(*pDoc, aPos, aCell);
             printer.set(nRow - nRow1, nCol - nCol1, aVal);
         }
diff --git a/sc/qa/unit/helper/qahelper.hxx b/sc/qa/unit/helper/qahelper.hxx
index b9a51701e26b..9bdd10d405d5 100644
--- a/sc/qa/unit/helper/qahelper.hxx
+++ b/sc/qa/unit/helper/qahelper.hxx
@@ -194,7 +194,6 @@ public:
     bool insertRangeNames(ScDocument* pDoc, ScRangeName* pNames, const 
RangeNameDef* p,
                                        const RangeNameDef* pEnd);
     OUString getRangeByName(ScDocument* pDoc, const OUString& aRangeName);
-    OUString getFormula(ScDocument* pDoc, SCCOL nCol, SCROW nRow, SCTAB nTab);
     void printFormula(ScDocument* pDoc, SCCOL nCol, SCROW nRow, SCTAB nTab,
                                            const char* pCaption = nullptr);
     void printRange(ScDocument* pDoc, const ScRange& rRange, const char* 
pCaption,
diff --git a/sc/qa/unit/ucalc_copypaste.cxx b/sc/qa/unit/ucalc_copypaste.cxx
index 0dde661423ff..87b9416086ff 100644
--- a/sc/qa/unit/ucalc_copypaste.cxx
+++ b/sc/qa/unit/ucalc_copypaste.cxx
@@ -312,7 +312,6 @@ private:
 
     void printValuesAndFormulasInRange(ScDocument* pDoc, const ScRange& rRange,
                                        const OString& rCaption);
-    OUString getFormula(SCCOL nCol, SCROW nRow, SCTAB nTab);
     OUString getRangeByName(const OUString& aRangeName);
     ScAddress setNote(SCCOL nCol, SCROW nRow, SCTAB nTab, const OUString 
noteText);
     OUString getNote(SCCOL nCol, SCROW nRow, SCTAB nTab);
@@ -339,11 +338,6 @@ void 
TestCopyPaste::printValuesAndFormulasInRange(ScDocument* pDoc, const ScRang
     printRange(pDoc, rRange, rCaption, true);
 }
 
-OUString TestCopyPaste::getFormula(SCCOL nCol, SCROW nRow, SCTAB nTab)
-{
-    return ScSimpleBootstrapFixture::getFormula(m_pDoc, nCol, nRow, nTab);
-}
-
 OUString TestCopyPaste::getRangeByName(const OUString& aRangeName)
 {
     return ScSimpleBootstrapFixture::getRangeByName(m_pDoc, aRangeName);
@@ -910,12 +904,14 @@ void TestCopyPaste::testCopyPasteSpecialAsLinkTranspose()
     // Check pasted content to make sure they reference the correct cells.
     ScFormulaCell* pFC = m_pDoc->GetFormulaCell(ScAddress(1, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell B2.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B2", OUString("=$Sheet1.$A$1"), 
getFormula(1, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B2", OUString("=$Sheet1.$A$1"),
+                                 m_pDoc->GetFormula(1, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(1.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(2, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C2", OUString("=$Sheet1.$A$2"), 
getFormula(2, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C2", OUString("=$Sheet1.$A$2"),
+                                 m_pDoc->GetFormula(2, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(2.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(3, 1, destSheet));
@@ -923,7 +919,8 @@ void TestCopyPaste::testCopyPasteSpecialAsLinkTranspose()
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(4, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell E2", OUString("=$Sheet1.$A$4"), 
getFormula(4, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell E2", OUString("=$Sheet1.$A$4"),
+                                 m_pDoc->GetFormula(4, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(4.0, pFC->GetValue());
 
     m_pDoc->DeleteTab(destSheet);
@@ -1000,7 +997,8 @@ void 
TestCopyPaste::testCopyPasteSpecialAsLinkFilteredTranspose()
     // Check pasted content to make sure they reference the correct cells.
     ScFormulaCell* pFC = m_pDoc->GetFormulaCell(ScAddress(1, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell B2.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B2", OUString("=$Sheet1.$A$1"), 
getFormula(1, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B2", OUString("=$Sheet1.$A$1"),
+                                 m_pDoc->GetFormula(1, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(1.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(2, 1, destSheet));
@@ -1008,7 +1006,8 @@ void 
TestCopyPaste::testCopyPasteSpecialAsLinkFilteredTranspose()
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(3, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell D2", OUString("=$Sheet1.$A$4"), 
getFormula(3, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell D2", OUString("=$Sheet1.$A$4"),
+                                 m_pDoc->GetFormula(3, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(4.0, pFC->GetValue());
 
     m_pDoc->DeleteTab(destSheet);
@@ -1060,12 +1059,14 @@ void 
TestCopyPaste::testCopyPasteSpecialMultiRangeRowAsLinkTranspose()
     // Check pasted content to make sure they reference the correct cells.
     ScFormulaCell* pFC = m_pDoc->GetFormulaCell(ScAddress(1, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell B2.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B2", OUString("=$Sheet1.$A$1"), 
getFormula(1, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B2", OUString("=$Sheet1.$A$1"),
+                                 m_pDoc->GetFormula(1, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(1.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(1, 2, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell B3.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B3", OUString("=$Sheet1.$B$1"), 
getFormula(1, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B3", OUString("=$Sheet1.$B$1"),
+                                 m_pDoc->GetFormula(1, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL(2.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(1, 3, destSheet));
@@ -1073,17 +1074,20 @@ void 
TestCopyPaste::testCopyPasteSpecialMultiRangeRowAsLinkTranspose()
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(1, 4, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B5", OUString("=$Sheet1.$D$1"), 
getFormula(1, 4, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B5", OUString("=$Sheet1.$D$1"),
+                                 m_pDoc->GetFormula(1, 4, destSheet));
     CPPUNIT_ASSERT_EQUAL(4.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(2, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell C2.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C2", OUString("=$Sheet1.$A$3"), 
getFormula(2, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C2", OUString("=$Sheet1.$A$3"),
+                                 m_pDoc->GetFormula(2, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(11.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(2, 2, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell C3.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C3", OUString("=$Sheet1.$B$3"), 
getFormula(2, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C3", OUString("=$Sheet1.$B$3"),
+                                 m_pDoc->GetFormula(2, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL(12.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(2, 3, destSheet));
@@ -1091,7 +1095,8 @@ void 
TestCopyPaste::testCopyPasteSpecialMultiRangeRowAsLinkTranspose()
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(2, 4, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C5", OUString("=$Sheet1.$D$3"), 
getFormula(2, 4, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C5", OUString("=$Sheet1.$D$3"),
+                                 m_pDoc->GetFormula(2, 4, destSheet));
     CPPUNIT_ASSERT_EQUAL(14.0, pFC->GetValue());
 
     m_pDoc->DeleteTab(destSheet);
@@ -1184,12 +1189,14 @@ void 
TestCopyPaste::testCopyPasteSpecialMultiRangeRowAsLinkFilteredTranspose()
     // Check pasted content to make sure they reference the correct cells.
     ScFormulaCell* pFC = m_pDoc->GetFormulaCell(ScAddress(1, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell B2.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B2", OUString("=$Sheet1.$A$1"), 
getFormula(1, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B2", OUString("=$Sheet1.$A$1"),
+                                 m_pDoc->GetFormula(1, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(1.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(1, 2, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell B3.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B3", OUString("=$Sheet1.$B$1"), 
getFormula(1, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B3", OUString("=$Sheet1.$B$1"),
+                                 m_pDoc->GetFormula(1, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL(2.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(1, 3, destSheet));
@@ -1197,17 +1204,20 @@ void 
TestCopyPaste::testCopyPasteSpecialMultiRangeRowAsLinkFilteredTranspose()
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(1, 4, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B5", OUString("=$Sheet1.$D$1"), 
getFormula(1, 4, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B5", OUString("=$Sheet1.$D$1"),
+                                 m_pDoc->GetFormula(1, 4, destSheet));
     CPPUNIT_ASSERT_EQUAL(4.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(2, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell C2.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C2", OUString("=$Sheet1.$A$3"), 
getFormula(2, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C2", OUString("=$Sheet1.$A$3"),
+                                 m_pDoc->GetFormula(2, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(11.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(2, 2, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell C3.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C3", OUString("=$Sheet1.$B$3"), 
getFormula(2, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C3", OUString("=$Sheet1.$B$3"),
+                                 m_pDoc->GetFormula(2, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL(12.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(2, 3, destSheet));
@@ -1215,17 +1225,20 @@ void 
TestCopyPaste::testCopyPasteSpecialMultiRangeRowAsLinkFilteredTranspose()
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(2, 4, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C5", OUString("=$Sheet1.$D$3"), 
getFormula(2, 4, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C5", OUString("=$Sheet1.$D$3"),
+                                 m_pDoc->GetFormula(2, 4, destSheet));
     CPPUNIT_ASSERT_EQUAL(14.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(3, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell D2.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell D2", OUString("=$Sheet1.$A$6"), 
getFormula(3, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell D2", OUString("=$Sheet1.$A$6"),
+                                 m_pDoc->GetFormula(3, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(111.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(3, 2, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell D3.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell D3", OUString("=$Sheet1.$B$6"), 
getFormula(3, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell D3", OUString("=$Sheet1.$B$6"),
+                                 m_pDoc->GetFormula(3, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL(112.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(3, 3, destSheet));
@@ -1233,7 +1246,8 @@ void 
TestCopyPaste::testCopyPasteSpecialMultiRangeRowAsLinkFilteredTranspose()
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(3, 4, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell D5", OUString("=$Sheet1.$D$6"), 
getFormula(3, 4, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell D5", OUString("=$Sheet1.$D$6"),
+                                 m_pDoc->GetFormula(3, 4, destSheet));
     CPPUNIT_ASSERT_EQUAL(114.0, pFC->GetValue());
 
     m_pDoc->DeleteTab(destSheet);
@@ -1285,12 +1299,14 @@ void 
TestCopyPaste::testCopyPasteSpecialMultiRangeColAsLinkTranspose()
     // Check pasted content to make sure they reference the correct cells.
     ScFormulaCell* pFC = m_pDoc->GetFormulaCell(ScAddress(1, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell B2.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B2", OUString("=$Sheet1.$A$1"), 
getFormula(1, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B2", OUString("=$Sheet1.$A$1"),
+                                 m_pDoc->GetFormula(1, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(1.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(2, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell C2.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C2", OUString("=$Sheet1.$A$2"), 
getFormula(2, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C2", OUString("=$Sheet1.$A$2"),
+                                 m_pDoc->GetFormula(2, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(2.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(3, 1, destSheet));
@@ -1298,17 +1314,20 @@ void 
TestCopyPaste::testCopyPasteSpecialMultiRangeColAsLinkTranspose()
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(4, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell E2", OUString("=$Sheet1.$A$4"), 
getFormula(4, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell E2", OUString("=$Sheet1.$A$4"),
+                                 m_pDoc->GetFormula(4, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(4.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(1, 2, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell B3.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B3", OUString("=$Sheet1.$C$1"), 
getFormula(1, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B3", OUString("=$Sheet1.$C$1"),
+                                 m_pDoc->GetFormula(1, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL(11.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(2, 2, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell C3.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C3", OUString("=$Sheet1.$C$2"), 
getFormula(2, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C3", OUString("=$Sheet1.$C$2"),
+                                 m_pDoc->GetFormula(2, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL(12.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(3, 2, destSheet));
@@ -1316,7 +1335,8 @@ void 
TestCopyPaste::testCopyPasteSpecialMultiRangeColAsLinkTranspose()
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(4, 2, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell E3", OUString("=$Sheet1.$C$4"), 
getFormula(4, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell E3", OUString("=$Sheet1.$C$4"),
+                                 m_pDoc->GetFormula(4, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL(14.0, pFC->GetValue());
 
     m_pDoc->DeleteTab(destSheet);
@@ -1392,7 +1412,8 @@ void 
TestCopyPaste::testCopyPasteSpecialMultiRangeColAsLinkFilteredTranspose()
     // Check pasted content to make sure they reference the correct cells.
     ScFormulaCell* pFC = m_pDoc->GetFormulaCell(ScAddress(1, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell B2.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B2", OUString("=$Sheet1.$A$1"), 
getFormula(1, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B2", OUString("=$Sheet1.$A$1"),
+                                 m_pDoc->GetFormula(1, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(1.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(2, 1, destSheet));
@@ -1400,12 +1421,14 @@ void 
TestCopyPaste::testCopyPasteSpecialMultiRangeColAsLinkFilteredTranspose()
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(3, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell D2", OUString("=$Sheet1.$A$4"), 
getFormula(3, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell D2", OUString("=$Sheet1.$A$4"),
+                                 m_pDoc->GetFormula(3, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(4.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(1, 2, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell B3.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B3", OUString("=$Sheet1.$C$1"), 
getFormula(1, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B3", OUString("=$Sheet1.$C$1"),
+                                 m_pDoc->GetFormula(1, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL(11.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(2, 2, destSheet));
@@ -1413,7 +1436,8 @@ void 
TestCopyPaste::testCopyPasteSpecialMultiRangeColAsLinkFilteredTranspose()
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(3, 2, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell D3", OUString("=$Sheet1.$C$4"), 
getFormula(3, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell D3", OUString("=$Sheet1.$C$4"),
+                                 m_pDoc->GetFormula(3, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL(14.0, pFC->GetValue());
 
     m_pDoc->DeleteTab(destSheet);
@@ -1453,22 +1477,26 @@ void 
TestCopyPaste::testCopyPasteSpecialAllAsLinkTranspose()
     // Check pasted content to make sure they reference the correct cells.
     ScFormulaCell* pFC = m_pDoc->GetFormulaCell(ScAddress(1, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell B2.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B2", OUString("=$Sheet1.$A$1"), 
getFormula(1, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B2", OUString("=$Sheet1.$A$1"),
+                                 m_pDoc->GetFormula(1, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(1.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(2, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C2", OUString("=$Sheet1.$A$2"), 
getFormula(2, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C2", OUString("=$Sheet1.$A$2"),
+                                 m_pDoc->GetFormula(2, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(2.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(3, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell D2", OUString("=$Sheet1.$A$3"), 
getFormula(3, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell D2", OUString("=$Sheet1.$A$3"),
+                                 m_pDoc->GetFormula(3, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(0.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(4, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell E2", OUString("=$Sheet1.$A$4"), 
getFormula(4, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell E2", OUString("=$Sheet1.$A$4"),
+                                 m_pDoc->GetFormula(4, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(4.0, pFC->GetValue());
 
     m_pDoc->DeleteTab(destSheet);
@@ -1545,17 +1573,20 @@ void 
TestCopyPaste::testCopyPasteSpecialAllAsLinkFilteredTranspose()
     // Check pasted content to make sure they reference the correct cells.
     ScFormulaCell* pFC = m_pDoc->GetFormulaCell(ScAddress(1, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell B2.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B2", OUString("=$Sheet1.$A$1"), 
getFormula(1, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell B2", OUString("=$Sheet1.$A$1"),
+                                 m_pDoc->GetFormula(1, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(1.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(2, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C2", OUString("=$Sheet1.$A$3"), 
getFormula(2, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell C2", OUString("=$Sheet1.$A$3"),
+                                 m_pDoc->GetFormula(2, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(0.0, pFC->GetValue());
 
     pFC = m_pDoc->GetFormulaCell(ScAddress(3, 1, destSheet));
     CPPUNIT_ASSERT_MESSAGE("This should be a formula cell.", pFC);
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell D2", OUString("=$Sheet1.$A$4"), 
getFormula(3, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Cell D2", OUString("=$Sheet1.$A$4"),
+                                 m_pDoc->GetFormula(3, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(4.0, pFC->GetValue());
 
     m_pDoc->DeleteTab(destSheet);
@@ -2553,13 +2584,13 @@ void TestCopyPaste::checkCopyPasteSpecialInitial(const 
SCTAB srcSheet)
     CPPUNIT_ASSERT_EQUAL(4.0, m_pDoc->GetValue(1, 5, srcSheet));
     // col 2, formulas
     CPPUNIT_ASSERT_EQUAL(11.0, m_pDoc->GetValue(2, 2, srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=B3+10"), getFormula(2, 2, srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=B4+20"), getFormula(2, 3, srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=B3+10"), m_pDoc->GetFormula(2, 2, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=B4+20"), m_pDoc->GetFormula(2, 3, 
srcSheet));
     CPPUNIT_ASSERT_EQUAL(22.0, m_pDoc->GetValue(2, 3, srcSheet));
     CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(2, 4, srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=E5+30"), getFormula(2, 4, srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=E5+30"), m_pDoc->GetFormula(2, 4, 
srcSheet));
     CPPUNIT_ASSERT_EQUAL(42.0, m_pDoc->GetValue(2, 5, srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=B4+40"), getFormula(2, 5, srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=B4+40"), m_pDoc->GetFormula(2, 5, 
srcSheet));
     // col 3, strings
     CPPUNIT_ASSERT_EQUAL(OUString("a"), m_pDoc->GetString(3, 2, srcSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("b"), m_pDoc->GetString(3, 3, srcSheet));
@@ -2577,18 +2608,18 @@ void TestCopyPaste::checkCopyPasteSpecialInitial(const 
SCTAB srcSheet)
     CPPUNIT_ASSERT(pEditObj);
     CPPUNIT_ASSERT_EQUAL(OUString("R4"), pEditObj->GetText(0));
     // col 5, formulas
-    CPPUNIT_ASSERT_EQUAL(OUString("=B3+B5+60"), getFormula(5, 2, srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=B3+B5+60"), m_pDoc->GetFormula(5, 2, 
srcSheet));
     CPPUNIT_ASSERT_EQUAL(64.0, m_pDoc->GetValue(5, 2, srcSheet));
     CPPUNIT_ASSERT_EQUAL(OUString(), m_pDoc->GetString(5, 3, srcSheet));
     CPPUNIT_ASSERT_EQUAL(OUString(), m_pDoc->GetString(5, 4, srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=B3+B5+70"), getFormula(5, 5, srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=B3+B5+70"), m_pDoc->GetFormula(5, 5, 
srcSheet));
     CPPUNIT_ASSERT_EQUAL(74.0, m_pDoc->GetValue(5, 5, srcSheet));
     // col 6, formulas
-    CPPUNIT_ASSERT_EQUAL(OUString("=SUMIF(B3:B6;\"<4\")"), getFormula(6, 2, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=SUMIF(B3:B6;\"<4\")"), 
m_pDoc->GetFormula(6, 2, srcSheet));
     CPPUNIT_ASSERT_EQUAL(6.0, m_pDoc->GetValue(6, 2, srcSheet));
     CPPUNIT_ASSERT_EQUAL(OUString(), m_pDoc->GetString(6, 3, srcSheet));
     CPPUNIT_ASSERT_EQUAL(OUString(), m_pDoc->GetString(6, 4, srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=C$3+$B$5+80"), getFormula(6, 5, srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=C$3+$B$5+80"), m_pDoc->GetFormula(6, 5, 
srcSheet));
     CPPUNIT_ASSERT_EQUAL(94.0, m_pDoc->GetValue(6, 5, srcSheet));
 
     // check patterns
@@ -2694,16 +2725,16 @@ void TestCopyPaste::checkCopyPasteSpecialInitial(const 
SCTAB srcSheet)
     CPPUNIT_ASSERT_EQUAL(OUString("Note F2"), getNote(6, 3, srcSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("Note F4"), getNote(6, 5, srcSheet));
 
-    CPPUNIT_ASSERT_EQUAL(OUString("=C5"), getFormula(1, 16, srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=$C$5"), getFormula(2, 16, srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=$C5"), getFormula(3, 16, srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=C$5"), getFormula(4, 16, srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=SUM(C5:C5)"), getFormula(5, 16, srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=SUM($C$5:$C$5)"), getFormula(6, 16, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=SUM($C5:$C5)"), getFormula(7, 16, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=SUM(C$5:C$5)"), getFormula(8, 16, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=SUM($B$3:$B$6)"), getFormula(9, 16, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=SUM($B$3:$B$10)"), getFormula(10, 16, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=C5"), m_pDoc->GetFormula(1, 16, srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=$C$5"), m_pDoc->GetFormula(2, 16, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=$C5"), m_pDoc->GetFormula(3, 16, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=C$5"), m_pDoc->GetFormula(4, 16, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=SUM(C5:C5)"), m_pDoc->GetFormula(5, 16, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=SUM($C$5:$C$5)"), m_pDoc->GetFormula(6, 
16, srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=SUM($C5:$C5)"), m_pDoc->GetFormula(7, 16, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=SUM(C$5:C$5)"), m_pDoc->GetFormula(8, 16, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=SUM($B$3:$B$6)"), m_pDoc->GetFormula(9, 
16, srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=SUM($B$3:$B$10)"), m_pDoc->GetFormula(10, 
16, srcSheet));
 
     CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(1, 16, srcSheet));
     CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(2, 16, srcSheet));
@@ -2716,16 +2747,16 @@ void TestCopyPaste::checkCopyPasteSpecialInitial(const 
SCTAB srcSheet)
     CPPUNIT_ASSERT_EQUAL(10.0, m_pDoc->GetValue(9, 16, srcSheet));
     CPPUNIT_ASSERT_EQUAL(-17.0, m_pDoc->GetValue(10, 16, srcSheet));
 
-    CPPUNIT_ASSERT_EQUAL(OUString("=Range_C5"), getFormula(1, 17, srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=Range_aCa5"), getFormula(2, 17, srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=Range_aC5"), getFormula(3, 17, srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=Range_Ca5"), getFormula(4, 17, srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_C5_C5)"), getFormula(5, 17, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa5)"), getFormula(6, 17, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aC5_aC5)"), getFormula(7, 17, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_Ca5_Ca5)"), getFormula(8, 17, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa8)"), getFormula(9, 17, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa10)"), getFormula(10, 
17, srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=Range_C5"), m_pDoc->GetFormula(1, 17, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=Range_aCa5"), m_pDoc->GetFormula(2, 17, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=Range_aC5"), m_pDoc->GetFormula(3, 17, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=Range_Ca5"), m_pDoc->GetFormula(4, 17, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_C5_C5)"), m_pDoc->GetFormula(5, 
17, srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa5)"), 
m_pDoc->GetFormula(6, 17, srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aC5_aC5)"), 
m_pDoc->GetFormula(7, 17, srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_Ca5_Ca5)"), 
m_pDoc->GetFormula(8, 17, srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa8)"), 
m_pDoc->GetFormula(9, 17, srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa10)"), 
m_pDoc->GetFormula(10, 17, srcSheet));
 
     CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(1, 17, srcSheet));
     CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(2, 17, srcSheet));
@@ -2739,55 +2770,55 @@ void TestCopyPaste::checkCopyPasteSpecialInitial(const 
SCTAB srcSheet)
     CPPUNIT_ASSERT_EQUAL(-17.0, m_pDoc->GetValue(10, 17, srcSheet));
 
     // Existing references to the destination range must not change
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D1"), getFormula(3, 101, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D2"), getFormula(3, 102, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D3"), getFormula(3, 103, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D4"), getFormula(3, 104, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D5"), getFormula(3, 105, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D6"), getFormula(3, 106, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D7"), getFormula(3, 107, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E1"), getFormula(4, 101, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E2"), getFormula(4, 102, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E3"), getFormula(4, 103, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E4"), getFormula(4, 104, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E5"), getFormula(4, 105, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E6"), getFormula(4, 106, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E7"), getFormula(4, 107, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F1"), getFormula(5, 101, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F2"), getFormula(5, 102, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F3"), getFormula(5, 103, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F4"), getFormula(5, 104, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F5"), getFormula(5, 105, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F6"), getFormula(5, 106, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F7"), getFormula(5, 107, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G1"), getFormula(6, 101, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G2"), getFormula(6, 102, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G3"), getFormula(6, 103, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G4"), getFormula(6, 104, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G5"), getFormula(6, 105, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G6"), getFormula(6, 106, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G7"), getFormula(6, 107, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H1"), getFormula(7, 101, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H2"), getFormula(7, 102, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H3"), getFormula(7, 103, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H4"), getFormula(7, 104, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H5"), getFormula(7, 105, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H6"), getFormula(7, 106, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H7"), getFormula(7, 107, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I1"), getFormula(8, 101, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I2"), getFormula(8, 102, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I3"), getFormula(8, 103, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I4"), getFormula(8, 104, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I5"), getFormula(8, 105, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I6"), getFormula(8, 106, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I7"), getFormula(8, 107, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J1"), getFormula(9, 101, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J2"), getFormula(9, 102, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J3"), getFormula(9, 103, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J4"), getFormula(9, 104, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J5"), getFormula(9, 105, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J6"), getFormula(9, 106, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J7"), getFormula(9, 107, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D1"), m_pDoc->GetFormula(3, 101, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D2"), m_pDoc->GetFormula(3, 102, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D3"), m_pDoc->GetFormula(3, 103, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D4"), m_pDoc->GetFormula(3, 104, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D5"), m_pDoc->GetFormula(3, 105, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D6"), m_pDoc->GetFormula(3, 106, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D7"), m_pDoc->GetFormula(3, 107, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E1"), m_pDoc->GetFormula(4, 101, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E2"), m_pDoc->GetFormula(4, 102, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E3"), m_pDoc->GetFormula(4, 103, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E4"), m_pDoc->GetFormula(4, 104, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E5"), m_pDoc->GetFormula(4, 105, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E6"), m_pDoc->GetFormula(4, 106, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E7"), m_pDoc->GetFormula(4, 107, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F1"), m_pDoc->GetFormula(5, 101, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F2"), m_pDoc->GetFormula(5, 102, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F3"), m_pDoc->GetFormula(5, 103, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F4"), m_pDoc->GetFormula(5, 104, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F5"), m_pDoc->GetFormula(5, 105, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F6"), m_pDoc->GetFormula(5, 106, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F7"), m_pDoc->GetFormula(5, 107, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G1"), m_pDoc->GetFormula(6, 101, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G2"), m_pDoc->GetFormula(6, 102, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G3"), m_pDoc->GetFormula(6, 103, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G4"), m_pDoc->GetFormula(6, 104, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G5"), m_pDoc->GetFormula(6, 105, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G6"), m_pDoc->GetFormula(6, 106, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G7"), m_pDoc->GetFormula(6, 107, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H1"), m_pDoc->GetFormula(7, 101, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H2"), m_pDoc->GetFormula(7, 102, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H3"), m_pDoc->GetFormula(7, 103, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H4"), m_pDoc->GetFormula(7, 104, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H5"), m_pDoc->GetFormula(7, 105, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H6"), m_pDoc->GetFormula(7, 106, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H7"), m_pDoc->GetFormula(7, 107, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I1"), m_pDoc->GetFormula(8, 101, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I2"), m_pDoc->GetFormula(8, 102, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I3"), m_pDoc->GetFormula(8, 103, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I4"), m_pDoc->GetFormula(8, 104, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I5"), m_pDoc->GetFormula(8, 105, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I6"), m_pDoc->GetFormula(8, 106, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I7"), m_pDoc->GetFormula(8, 107, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J1"), m_pDoc->GetFormula(9, 101, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J2"), m_pDoc->GetFormula(9, 102, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J3"), m_pDoc->GetFormula(9, 103, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J4"), m_pDoc->GetFormula(9, 104, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J5"), m_pDoc->GetFormula(9, 105, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J6"), m_pDoc->GetFormula(9, 106, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J7"), m_pDoc->GetFormula(9, 107, 
srcSheet));
 }
 
 // Base check, nothing filtered, nothing transposed
@@ -2827,13 +2858,13 @@ void TestCopyPaste::checkCopyPasteSpecial(bool 
bSkipEmpty, bool bCut)
     // col 4, formulas
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(4, 0, destSheet));
     CPPUNIT_ASSERT_EQUAL(11.0, m_pDoc->GetValue(4, 1, destSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=D2+10"), getFormula(4, 1, destSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=D3+20"), getFormula(4, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=D2+10"), m_pDoc->GetFormula(4, 1, 
destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=D3+20"), m_pDoc->GetFormula(4, 2, 
destSheet));
     CPPUNIT_ASSERT_EQUAL(22.0, m_pDoc->GetValue(4, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(4, 3, destSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=G4+30"), getFormula(4, 3, destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=G4+30"), m_pDoc->GetFormula(4, 3, 
destSheet));
     CPPUNIT_ASSERT_EQUAL(42.0, m_pDoc->GetValue(4, 4, destSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=D3+40"), getFormula(4, 4, destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=D3+40"), m_pDoc->GetFormula(4, 4, 
destSheet));
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(4, 5, destSheet));
     // col 5, strings
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(5, 0, destSheet));
@@ -2864,7 +2895,7 @@ void TestCopyPaste::checkCopyPasteSpecial(bool 
bSkipEmpty, bool bCut)
     // col 7, formulas
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(7, 0, destSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("1000"), m_pDoc->GetString(7, 0, destSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=D2+D4+60"), getFormula(7, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=D2+D4+60"), m_pDoc->GetFormula(7, 1, 
destSheet));
     CPPUNIT_ASSERT_EQUAL(64.0, m_pDoc->GetValue(7, 1, destSheet));
     if (!bSkipEmpty)
     {
@@ -2876,14 +2907,14 @@ void TestCopyPaste::checkCopyPasteSpecial(bool 
bSkipEmpty, bool bCut)
         CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(7, 2, destSheet));
         CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(7, 3, destSheet));
     }
-    CPPUNIT_ASSERT_EQUAL(OUString("=D2+D4+70"), getFormula(7, 4, destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=D2+D4+70"), m_pDoc->GetFormula(7, 4, 
destSheet));
     CPPUNIT_ASSERT_EQUAL(74.0, m_pDoc->GetValue(7, 4, destSheet));
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(7, 5, destSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("1000"), m_pDoc->GetString(7, 5, destSheet));
     // col 8, formulas
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(8, 0, destSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("1000"), m_pDoc->GetString(8, 0, destSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=SUMIF(D2:D5;\"<4\")"), getFormula(8, 1, 
destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=SUMIF(D2:D5;\"<4\")"), 
m_pDoc->GetFormula(8, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(6.0, m_pDoc->GetValue(8, 1, destSheet));
     if (!bSkipEmpty)
     {
@@ -3037,69 +3068,69 @@ void TestCopyPaste::checkCopyPasteSpecial(bool 
bSkipEmpty, bool bCut)
     CPPUNIT_ASSERT_EQUAL(OUString("Note F4"), getNote(8, 4, destSheet));
 
     // Existing references to the destination range must not change
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D1"), getFormula(3, 101, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D2"), getFormula(3, 102, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D3"), getFormula(3, 103, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D4"), getFormula(3, 104, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D5"), getFormula(3, 105, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D6"), getFormula(3, 106, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D7"), getFormula(3, 107, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E1"), getFormula(4, 101, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E2"), getFormula(4, 102, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E3"), getFormula(4, 103, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E4"), getFormula(4, 104, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E5"), getFormula(4, 105, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E6"), getFormula(4, 106, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E7"), getFormula(4, 107, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F1"), getFormula(5, 101, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F2"), getFormula(5, 102, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F3"), getFormula(5, 103, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F4"), getFormula(5, 104, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F5"), getFormula(5, 105, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F6"), getFormula(5, 106, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F7"), getFormula(5, 107, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G1"), getFormula(6, 101, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G2"), getFormula(6, 102, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G3"), getFormula(6, 103, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G4"), getFormula(6, 104, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G5"), getFormula(6, 105, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G6"), getFormula(6, 106, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G7"), getFormula(6, 107, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H1"), getFormula(7, 101, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H2"), getFormula(7, 102, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H3"), getFormula(7, 103, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H4"), getFormula(7, 104, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H5"), getFormula(7, 105, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H6"), getFormula(7, 106, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H7"), getFormula(7, 107, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I1"), getFormula(8, 101, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I2"), getFormula(8, 102, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I3"), getFormula(8, 103, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I4"), getFormula(8, 104, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I5"), getFormula(8, 105, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I6"), getFormula(8, 106, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I7"), getFormula(8, 107, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J1"), getFormula(9, 101, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J2"), getFormula(9, 102, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J3"), getFormula(9, 103, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J4"), getFormula(9, 104, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J5"), getFormula(9, 105, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J6"), getFormula(9, 106, 
srcSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J7"), getFormula(9, 107, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D1"), m_pDoc->GetFormula(3, 101, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D2"), m_pDoc->GetFormula(3, 102, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D3"), m_pDoc->GetFormula(3, 103, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D4"), m_pDoc->GetFormula(3, 104, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D5"), m_pDoc->GetFormula(3, 105, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D6"), m_pDoc->GetFormula(3, 106, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D7"), m_pDoc->GetFormula(3, 107, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E1"), m_pDoc->GetFormula(4, 101, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E2"), m_pDoc->GetFormula(4, 102, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E3"), m_pDoc->GetFormula(4, 103, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E4"), m_pDoc->GetFormula(4, 104, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E5"), m_pDoc->GetFormula(4, 105, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E6"), m_pDoc->GetFormula(4, 106, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E7"), m_pDoc->GetFormula(4, 107, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F1"), m_pDoc->GetFormula(5, 101, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F2"), m_pDoc->GetFormula(5, 102, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F3"), m_pDoc->GetFormula(5, 103, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F4"), m_pDoc->GetFormula(5, 104, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F5"), m_pDoc->GetFormula(5, 105, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F6"), m_pDoc->GetFormula(5, 106, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F7"), m_pDoc->GetFormula(5, 107, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G1"), m_pDoc->GetFormula(6, 101, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G2"), m_pDoc->GetFormula(6, 102, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G3"), m_pDoc->GetFormula(6, 103, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G4"), m_pDoc->GetFormula(6, 104, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G5"), m_pDoc->GetFormula(6, 105, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G6"), m_pDoc->GetFormula(6, 106, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G7"), m_pDoc->GetFormula(6, 107, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H1"), m_pDoc->GetFormula(7, 101, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H2"), m_pDoc->GetFormula(7, 102, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H3"), m_pDoc->GetFormula(7, 103, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H4"), m_pDoc->GetFormula(7, 104, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H5"), m_pDoc->GetFormula(7, 105, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H6"), m_pDoc->GetFormula(7, 106, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H7"), m_pDoc->GetFormula(7, 107, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I1"), m_pDoc->GetFormula(8, 101, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I2"), m_pDoc->GetFormula(8, 102, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I3"), m_pDoc->GetFormula(8, 103, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I4"), m_pDoc->GetFormula(8, 104, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I5"), m_pDoc->GetFormula(8, 105, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I6"), m_pDoc->GetFormula(8, 106, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I7"), m_pDoc->GetFormula(8, 107, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J1"), m_pDoc->GetFormula(9, 101, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J2"), m_pDoc->GetFormula(9, 102, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J3"), m_pDoc->GetFormula(9, 103, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J4"), m_pDoc->GetFormula(9, 104, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J5"), m_pDoc->GetFormula(9, 105, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J6"), m_pDoc->GetFormula(9, 106, 
srcSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J7"), m_pDoc->GetFormula(9, 107, 
srcSheet));
 
     // row 14 on src sheet, refs to copied/cut range
     if (!bCut)
     {
-        CPPUNIT_ASSERT_EQUAL(OUString("=C5"), getFormula(1, 16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=$C$5"), getFormula(2, 16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=$C5"), getFormula(3, 16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=C$5"), getFormula(4, 16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(C5:C5)"), getFormula(5, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($C$5:$C$5)"), getFormula(6, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($C5:$C5)"), getFormula(7, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(C$5:C$5)"), getFormula(8, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($B$3:$B$6)"), getFormula(9, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($B$3:$B$10)"), getFormula(10, 16, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=C5"), m_pDoc->GetFormula(1, 16, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=$C$5"), m_pDoc->GetFormula(2, 16, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=$C5"), m_pDoc->GetFormula(3, 16, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=C$5"), m_pDoc->GetFormula(4, 16, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(C5:C5)"), m_pDoc->GetFormula(5, 
16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($C$5:$C$5)"), 
m_pDoc->GetFormula(6, 16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($C5:$C5)"), m_pDoc->GetFormula(7, 
16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(C$5:C$5)"), m_pDoc->GetFormula(8, 
16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($B$3:$B$6)"), 
m_pDoc->GetFormula(9, 16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($B$3:$B$10)"), 
m_pDoc->GetFormula(10, 16, srcSheet));
 
         CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(1, 16, srcSheet));
         CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(2, 16, srcSheet));
@@ -3112,16 +3143,19 @@ void TestCopyPaste::checkCopyPasteSpecial(bool 
bSkipEmpty, bool bCut)
         CPPUNIT_ASSERT_EQUAL(10.0, m_pDoc->GetValue(9, 16, srcSheet));
         CPPUNIT_ASSERT_EQUAL(-17.0, m_pDoc->GetValue(10, 16, srcSheet));
 
-        CPPUNIT_ASSERT_EQUAL(OUString("=Range_C5"), getFormula(1, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=Range_aCa5"), getFormula(2, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=Range_aC5"), getFormula(3, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=Range_Ca5"), getFormula(4, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_C5_C5)"), getFormula(5, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa5)"), getFormula(6, 
17, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aC5_aC5)"), getFormula(7, 
17, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_Ca5_Ca5)"), getFormula(8, 
17, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa8)"), getFormula(9, 
17, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa10)"), 
getFormula(10, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=Range_C5"), m_pDoc->GetFormula(1, 17, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=Range_aCa5"), m_pDoc->GetFormula(2, 
17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=Range_aC5"), m_pDoc->GetFormula(3, 17, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=Range_Ca5"), m_pDoc->GetFormula(4, 17, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_C5_C5)"), 
m_pDoc->GetFormula(5, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa5)"),
+                             m_pDoc->GetFormula(6, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aC5_aC5)"), 
m_pDoc->GetFormula(7, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_Ca5_Ca5)"), 
m_pDoc->GetFormula(8, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa8)"),
+                             m_pDoc->GetFormula(9, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa10)"),
+                             m_pDoc->GetFormula(10, 17, srcSheet));
 
         CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(1, 17, srcSheet));
         CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(2, 17, srcSheet));
@@ -3139,16 +3173,21 @@ void TestCopyPaste::checkCopyPasteSpecial(bool 
bSkipEmpty, bool bCut)
     }
     else
     {
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E4"), getFormula(1, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.$E$4"), getFormula(2, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.$E4"), getFormula(3, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E$4"), getFormula(4, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.E4:E4)"), getFormula(5, 
16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.$E$4:$E$4)"), 
getFormula(6, 16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.$E4:$E4)"), 
getFormula(7, 16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.E$4:E$4)"), 
getFormula(8, 16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.$D$2:$D$5)"), 
getFormula(9, 16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($B$3:$B$10)"), getFormula(10, 16, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E4"), m_pDoc->GetFormula(1, 
16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.$E$4"), 
m_pDoc->GetFormula(2, 16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.$E4"), m_pDoc->GetFormula(3, 
16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E$4"), m_pDoc->GetFormula(4, 
16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.E4:E4)"),
+                             m_pDoc->GetFormula(5, 16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.$E$4:$E$4)"),
+                             m_pDoc->GetFormula(6, 16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.$E4:$E4)"),
+                             m_pDoc->GetFormula(7, 16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.E$4:E$4)"),
+                             m_pDoc->GetFormula(8, 16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.$D$2:$D$5)"),
+                             m_pDoc->GetFormula(9, 16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($B$3:$B$10)"), 
m_pDoc->GetFormula(10, 16, srcSheet));
 
         CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(1, 16, srcSheet));
         CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(2, 16, srcSheet));
@@ -3161,16 +3200,19 @@ void TestCopyPaste::checkCopyPasteSpecial(bool 
bSkipEmpty, bool bCut)
         CPPUNIT_ASSERT_EQUAL(10.0, m_pDoc->GetValue(9, 16, srcSheet));
         CPPUNIT_ASSERT_EQUAL(-27.0, m_pDoc->GetValue(10, 16, srcSheet));
 
-        CPPUNIT_ASSERT_EQUAL(OUString("=Range_C5"), getFormula(1, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=Range_aCa5"), getFormula(2, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=Range_aC5"), getFormula(3, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=Range_Ca5"), getFormula(4, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_C5_C5)"), getFormula(5, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa5)"), getFormula(6, 
17, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aC5_aC5)"), getFormula(7, 
17, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_Ca5_Ca5)"), getFormula(8, 
17, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa8)"), getFormula(9, 
17, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa10)"), 
getFormula(10, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=Range_C5"), m_pDoc->GetFormula(1, 17, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=Range_aCa5"), m_pDoc->GetFormula(2, 
17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=Range_aC5"), m_pDoc->GetFormula(3, 17, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=Range_Ca5"), m_pDoc->GetFormula(4, 17, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_C5_C5)"), 
m_pDoc->GetFormula(5, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa5)"),
+                             m_pDoc->GetFormula(6, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aC5_aC5)"), 
m_pDoc->GetFormula(7, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_Ca5_Ca5)"), 
m_pDoc->GetFormula(8, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa8)"),
+                             m_pDoc->GetFormula(9, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa10)"),
+                             m_pDoc->GetFormula(10, 17, srcSheet));
 
         CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(1, 17, srcSheet));
         CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(2, 17, srcSheet));
@@ -3221,15 +3263,15 @@ void TestCopyPaste::checkCopyPasteSpecialFiltered(bool 
bSkipEmpty)
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(3, 5, destSheet));
     // col 4, formulas
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(4, 0, destSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString(), getFormula(4, 0, destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString(), m_pDoc->GetFormula(4, 0, destSheet));
     CPPUNIT_ASSERT_EQUAL(11.0, m_pDoc->GetValue(4, 1, destSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=D2+10"), getFormula(4, 1, destSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=G3+30"), getFormula(4, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=D2+10"), m_pDoc->GetFormula(4, 1, 
destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=G3+30"), m_pDoc->GetFormula(4, 2, 
destSheet));
     CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(4, 2, destSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=D2+40"), getFormula(4, 3, destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=D2+40"), m_pDoc->GetFormula(4, 3, 
destSheet));
     CPPUNIT_ASSERT_EQUAL(41.0, m_pDoc->GetValue(4, 3, destSheet));
     CPPUNIT_ASSERT_EQUAL(11.0, m_pDoc->GetValue(4, 4, destSheet)); // repeated 
row 1
-    CPPUNIT_ASSERT_EQUAL(OUString("=D5+10"), getFormula(4, 4, destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=D5+10"), m_pDoc->GetFormula(4, 4, 
destSheet));
     CPPUNIT_ASSERT_EQUAL(11.0, m_pDoc->GetValue(4, 4, destSheet));
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(4, 5, destSheet));
     // col 5, strings
@@ -3239,7 +3281,7 @@ void TestCopyPaste::checkCopyPasteSpecialFiltered(bool 
bSkipEmpty)
     CPPUNIT_ASSERT_EQUAL(OUString("d"), m_pDoc->GetString(5, 3, destSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("a"), m_pDoc->GetString(5, 4, destSheet)); 
// repeated row 1
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(5, 5, destSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString(), getFormula(4, 5, destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString(), m_pDoc->GetFormula(4, 5, destSheet));
     // col 6, rich text
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(6, 0, destSheet));
     pEditObj = m_pDoc->GetEditText(ScAddress(6, 0, destSheet));
@@ -3260,16 +3302,17 @@ void TestCopyPaste::checkCopyPasteSpecialFiltered(bool 
bSkipEmpty)
     // col 7, formulas
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(7, 0, destSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("1000"), m_pDoc->GetString(7, 0, destSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=D2+D4+60"), getFormula(7, 1, destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=D2+D4+60"), m_pDoc->GetFormula(7, 1, 
destSheet));
     // formula is not adjusted due to filter row
     CPPUNIT_ASSERT_EQUAL(65.0, m_pDoc->GetValue(7, 1, destSheet));
     if (!bSkipEmpty)
         CPPUNIT_ASSERT_EQUAL(OUString(), m_pDoc->GetString(7, 2, destSheet));
     else
         CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(7, 2, destSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=D1+D3+70"), getFormula(7, 3, destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=D1+D3+70"), m_pDoc->GetFormula(7, 3, 
destSheet));
     CPPUNIT_ASSERT_EQUAL(1073.0, m_pDoc->GetValue(7, 3, destSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=D5+D7+60"), getFormula(7, 4, destSheet)); 
// repeated row 1
+    CPPUNIT_ASSERT_EQUAL(OUString("=D5+D7+60"),
+                         m_pDoc->GetFormula(7, 4, destSheet)); // repeated row 
1
     // formula is not adjusted due to filter row
     CPPUNIT_ASSERT_EQUAL(1061.0, m_pDoc->GetValue(7, 4, destSheet));
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(7, 5, destSheet));
@@ -3277,15 +3320,15 @@ void TestCopyPaste::checkCopyPasteSpecialFiltered(bool 
bSkipEmpty)
     // col 8, formulas
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(8, 0, destSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("1000"), m_pDoc->GetString(8, 0, destSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=SUMIF(D2:D5;\"<4\")"), getFormula(8, 1, 
destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=SUMIF(D2:D5;\"<4\")"), 
m_pDoc->GetFormula(8, 1, destSheet));
     CPPUNIT_ASSERT_EQUAL(5.0, m_pDoc->GetValue(8, 1, destSheet));
     if (!bSkipEmpty)
         CPPUNIT_ASSERT_EQUAL(OUString(), m_pDoc->GetString(8, 2, destSheet));
     else
         CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(8, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL(1115.0, m_pDoc->GetValue(8, 3, destSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=E$3+$B$5+80"), getFormula(8, 3, 
destSheet));
-    CPPUNIT_ASSERT_EQUAL(OUString("=SUMIF(D5:D8;\"<4\")"), getFormula(8, 4, 
destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=E$3+$B$5+80"), m_pDoc->GetFormula(8, 3, 
destSheet));
+    CPPUNIT_ASSERT_EQUAL(OUString("=SUMIF(D5:D8;\"<4\")"), 
m_pDoc->GetFormula(8, 4, destSheet));
     CPPUNIT_ASSERT_EQUAL(1.0, m_pDoc->GetValue(8, 4, destSheet));
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(8, 5, destSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("1000"), m_pDoc->GetString(8, 5, destSheet));
@@ -3451,13 +3494,17 @@ void TestCopyPaste::checkCopyPasteSpecialTranspose(bool 
bSkipEmpty, bool bCut)
     // row 2, formulas
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(2, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("1000"), m_pDoc->GetString(2, 2, destSheet));
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed D3", OUString("=D2+10"), 
getFormula(3, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed D3", OUString("=D2+10"),
+                                 m_pDoc->GetFormula(3, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed D3", 11.0, m_pDoc->GetValue(3, 2, 
destSheet));
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed E3", OUString("=E2+20"), 
getFormula(4, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed E3", OUString("=E2+20"),
+                                 m_pDoc->GetFormula(4, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed E3", 22.0, m_pDoc->GetValue(4, 2, 
destSheet));
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed F3", OUString("=F5+30"), 
getFormula(5, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed F3", OUString("=F5+30"),
+                                 m_pDoc->GetFormula(5, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed F3", 35.0, m_pDoc->GetValue(5, 2, 
destSheet));
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed G3", OUString("=E2+40"), 
getFormula(6, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed G3", OUString("=E2+40"),
+                                 m_pDoc->GetFormula(6, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed G3", 42.0, m_pDoc->GetValue(6, 2, 
destSheet));
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(7, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("1000"), m_pDoc->GetString(7, 2, destSheet));
@@ -3492,7 +3539,7 @@ void TestCopyPaste::checkCopyPasteSpecialTranspose(bool 
bSkipEmpty, bool bCut)
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(2, 5, destSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("1000"), m_pDoc->GetString(2, 5, destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed D6", OUString("=D2+F2+60"),
-                                 getFormula(3, 5, destSheet));
+                                 m_pDoc->GetFormula(3, 5, destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed D6", 64.0, m_pDoc->GetValue(3, 5, 
destSheet));
     if (!bSkipEmpty)
     {
@@ -3505,7 +3552,7 @@ void TestCopyPaste::checkCopyPasteSpecialTranspose(bool 
bSkipEmpty, bool bCut)
         CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(5, 5, destSheet));
     }
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed G6", OUString("=D2+F2+70"),
-                                 getFormula(6, 5, destSheet));
+                                 m_pDoc->GetFormula(6, 5, destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed G6", 74.0, m_pDoc->GetValue(6, 5, 
destSheet));
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(7, 5, destSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("1000"), m_pDoc->GetString(7, 5, destSheet));
@@ -3513,7 +3560,7 @@ void TestCopyPaste::checkCopyPasteSpecialTranspose(bool 
bSkipEmpty, bool bCut)
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(2, 6, destSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("1000"), m_pDoc->GetString(2, 6, destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed D7", 
OUString("=SUMIF(D2:G2;\"<4\")"),
-                                 getFormula(3, 6, destSheet));
+                                 m_pDoc->GetFormula(3, 6, destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed D7", 6.0, m_pDoc->GetValue(3, 6, 
destSheet));
     if (!bSkipEmpty)
     {
@@ -3699,16 +3746,16 @@ void TestCopyPaste::checkCopyPasteSpecialTranspose(bool 
bSkipEmpty, bool bCut)
     // row 14 on src sheet, refs to copied/cut range
     if (!bCut)
     {
-        CPPUNIT_ASSERT_EQUAL(OUString("=C5"), getFormula(1, 16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=$C$5"), getFormula(2, 16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=$C5"), getFormula(3, 16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=C$5"), getFormula(4, 16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(C5:C5)"), getFormula(5, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($C$5:$C$5)"), getFormula(6, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($C5:$C5)"), getFormula(7, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(C$5:C$5)"), getFormula(8, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($B$3:$B$6)"), getFormula(9, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($B$3:$B$10)"), getFormula(10, 16, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=C5"), m_pDoc->GetFormula(1, 16, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=$C$5"), m_pDoc->GetFormula(2, 16, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=$C5"), m_pDoc->GetFormula(3, 16, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=C$5"), m_pDoc->GetFormula(4, 16, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(C5:C5)"), m_pDoc->GetFormula(5, 
16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($C$5:$C$5)"), 
m_pDoc->GetFormula(6, 16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($C5:$C5)"), m_pDoc->GetFormula(7, 
16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(C$5:C$5)"), m_pDoc->GetFormula(8, 
16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($B$3:$B$6)"), 
m_pDoc->GetFormula(9, 16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($B$3:$B$10)"), 
m_pDoc->GetFormula(10, 16, srcSheet));
 
         CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(1, 16, srcSheet));
         CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(2, 16, srcSheet));
@@ -3721,16 +3768,19 @@ void TestCopyPaste::checkCopyPasteSpecialTranspose(bool 
bSkipEmpty, bool bCut)
         CPPUNIT_ASSERT_EQUAL(10.0, m_pDoc->GetValue(9, 16, srcSheet));
         CPPUNIT_ASSERT_EQUAL(-17.0, m_pDoc->GetValue(10, 16, srcSheet));
 
-        CPPUNIT_ASSERT_EQUAL(OUString("=Range_C5"), getFormula(1, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=Range_aCa5"), getFormula(2, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=Range_aC5"), getFormula(3, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=Range_Ca5"), getFormula(4, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_C5_C5)"), getFormula(5, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa5)"), getFormula(6, 
17, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aC5_aC5)"), getFormula(7, 
17, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_Ca5_Ca5)"), getFormula(8, 
17, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa8)"), getFormula(9, 
17, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa10)"), 
getFormula(10, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=Range_C5"), m_pDoc->GetFormula(1, 17, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=Range_aCa5"), m_pDoc->GetFormula(2, 
17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=Range_aC5"), m_pDoc->GetFormula(3, 17, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=Range_Ca5"), m_pDoc->GetFormula(4, 17, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_C5_C5)"), 
m_pDoc->GetFormula(5, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa5)"),
+                             m_pDoc->GetFormula(6, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aC5_aC5)"), 
m_pDoc->GetFormula(7, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_Ca5_Ca5)"), 
m_pDoc->GetFormula(8, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa8)"),
+                             m_pDoc->GetFormula(9, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa10)"),
+                             m_pDoc->GetFormula(10, 17, srcSheet));
 
         CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(1, 17, srcSheet));
         CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(2, 17, srcSheet));
@@ -3744,71 +3794,76 @@ void TestCopyPaste::checkCopyPasteSpecialTranspose(bool 
bSkipEmpty, bool bCut)
         CPPUNIT_ASSERT_EQUAL(-17.0, m_pDoc->GetValue(10, 17, srcSheet));
 
         // Existing references to the destination range must not change
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D1"), getFormula(3, 101, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D2"), getFormula(3, 102, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D3"), getFormula(3, 103, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D4"), getFormula(3, 104, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D5"), getFormula(3, 105, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D6"), getFormula(3, 106, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D7"), getFormula(3, 107, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E1"), getFormula(4, 101, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E2"), getFormula(4, 102, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E3"), getFormula(4, 103, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E4"), getFormula(4, 104, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E5"), getFormula(4, 105, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E6"), getFormula(4, 106, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E7"), getFormula(4, 107, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F1"), getFormula(5, 101, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F2"), getFormula(5, 102, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F3"), getFormula(5, 103, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F4"), getFormula(5, 104, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F5"), getFormula(5, 105, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F6"), getFormula(5, 106, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F7"), getFormula(5, 107, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G1"), getFormula(6, 101, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G2"), getFormula(6, 102, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G3"), getFormula(6, 103, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G4"), getFormula(6, 104, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G5"), getFormula(6, 105, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G6"), getFormula(6, 106, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G7"), getFormula(6, 107, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H1"), getFormula(7, 101, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H2"), getFormula(7, 102, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H3"), getFormula(7, 103, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H4"), getFormula(7, 104, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H5"), getFormula(7, 105, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H6"), getFormula(7, 106, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H7"), getFormula(7, 107, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I1"), getFormula(8, 101, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I2"), getFormula(8, 102, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I3"), getFormula(8, 103, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I4"), getFormula(8, 104, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I5"), getFormula(8, 105, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I6"), getFormula(8, 106, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I7"), getFormula(8, 107, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J1"), getFormula(9, 101, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J2"), getFormula(9, 102, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J3"), getFormula(9, 103, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J4"), getFormula(9, 104, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J5"), getFormula(9, 105, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J6"), getFormula(9, 106, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J7"), getFormula(9, 107, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D1"), m_pDoc->GetFormula(3, 
101, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D2"), m_pDoc->GetFormula(3, 
102, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D3"), m_pDoc->GetFormula(3, 
103, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D4"), m_pDoc->GetFormula(3, 
104, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D5"), m_pDoc->GetFormula(3, 
105, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D6"), m_pDoc->GetFormula(3, 
106, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D7"), m_pDoc->GetFormula(3, 
107, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E1"), m_pDoc->GetFormula(4, 
101, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E2"), m_pDoc->GetFormula(4, 
102, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E3"), m_pDoc->GetFormula(4, 
103, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E4"), m_pDoc->GetFormula(4, 
104, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E5"), m_pDoc->GetFormula(4, 
105, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E6"), m_pDoc->GetFormula(4, 
106, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E7"), m_pDoc->GetFormula(4, 
107, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F1"), m_pDoc->GetFormula(5, 
101, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F2"), m_pDoc->GetFormula(5, 
102, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F3"), m_pDoc->GetFormula(5, 
103, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F4"), m_pDoc->GetFormula(5, 
104, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F5"), m_pDoc->GetFormula(5, 
105, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F6"), m_pDoc->GetFormula(5, 
106, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F7"), m_pDoc->GetFormula(5, 
107, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G1"), m_pDoc->GetFormula(6, 
101, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G2"), m_pDoc->GetFormula(6, 
102, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G3"), m_pDoc->GetFormula(6, 
103, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G4"), m_pDoc->GetFormula(6, 
104, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G5"), m_pDoc->GetFormula(6, 
105, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G6"), m_pDoc->GetFormula(6, 
106, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G7"), m_pDoc->GetFormula(6, 
107, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H1"), m_pDoc->GetFormula(7, 
101, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H2"), m_pDoc->GetFormula(7, 
102, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H3"), m_pDoc->GetFormula(7, 
103, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H4"), m_pDoc->GetFormula(7, 
104, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H5"), m_pDoc->GetFormula(7, 
105, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H6"), m_pDoc->GetFormula(7, 
106, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H7"), m_pDoc->GetFormula(7, 
107, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I1"), m_pDoc->GetFormula(8, 
101, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I2"), m_pDoc->GetFormula(8, 
102, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I3"), m_pDoc->GetFormula(8, 
103, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I4"), m_pDoc->GetFormula(8, 
104, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I5"), m_pDoc->GetFormula(8, 
105, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I6"), m_pDoc->GetFormula(8, 
106, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I7"), m_pDoc->GetFormula(8, 
107, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J1"), m_pDoc->GetFormula(9, 
101, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J2"), m_pDoc->GetFormula(9, 
102, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J3"), m_pDoc->GetFormula(9, 
103, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J4"), m_pDoc->GetFormula(9, 
104, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J5"), m_pDoc->GetFormula(9, 
105, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J6"), m_pDoc->GetFormula(9, 
106, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J7"), m_pDoc->GetFormula(9, 
107, srcSheet));
 
         m_pDoc->DeleteTab(destSheet);
         m_pDoc->DeleteTab(srcSheet);
     }
     else
     {
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F3"), getFormula(1, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.$F$3"), getFormula(2, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.$F3"), getFormula(3, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F$3"), getFormula(4, 16, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.F3:F3)"), getFormula(5, 
16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.$F$3:$F$3)"), 
getFormula(6, 16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.$F3:$F3)"), 
getFormula(7, 16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.F$3:F$3)"), 
getFormula(8, 16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.$D$2:$G$2)"), 
getFormula(9, 16, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($B$3:$B$10)"), getFormula(10, 16, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F3"), m_pDoc->GetFormula(1, 
16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.$F$3"), 
m_pDoc->GetFormula(2, 16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.$F3"), m_pDoc->GetFormula(3, 
16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F$3"), m_pDoc->GetFormula(4, 
16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.F3:F3)"),
+                             m_pDoc->GetFormula(5, 16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.$F$3:$F$3)"),
+                             m_pDoc->GetFormula(6, 16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.$F3:$F3)"),
+                             m_pDoc->GetFormula(7, 16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.F$3:F$3)"),
+                             m_pDoc->GetFormula(8, 16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(DestSheet.$D$2:$G$2)"),
+                             m_pDoc->GetFormula(9, 16, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM($B$3:$B$10)"), 
m_pDoc->GetFormula(10, 16, srcSheet));
 
         CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(1, 16, srcSheet));
         CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(2, 16, srcSheet));
@@ -3821,16 +3876,19 @@ void TestCopyPaste::checkCopyPasteSpecialTranspose(bool 
bSkipEmpty, bool bCut)
         CPPUNIT_ASSERT_EQUAL(10.0, m_pDoc->GetValue(9, 16, srcSheet));
         CPPUNIT_ASSERT_EQUAL(-27.0, m_pDoc->GetValue(10, 16, srcSheet));
 
-        CPPUNIT_ASSERT_EQUAL(OUString("=Range_C5"), getFormula(1, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=Range_aCa5"), getFormula(2, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=Range_aC5"), getFormula(3, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=Range_Ca5"), getFormula(4, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_C5_C5)"), getFormula(5, 17, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa5)"), getFormula(6, 
17, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aC5_aC5)"), getFormula(7, 
17, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_Ca5_Ca5)"), getFormula(8, 
17, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa8)"), getFormula(9, 
17, srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa10)"), 
getFormula(10, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=Range_C5"), m_pDoc->GetFormula(1, 17, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=Range_aCa5"), m_pDoc->GetFormula(2, 
17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=Range_aC5"), m_pDoc->GetFormula(3, 17, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=Range_Ca5"), m_pDoc->GetFormula(4, 17, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_C5_C5)"), 
m_pDoc->GetFormula(5, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa5)"),
+                             m_pDoc->GetFormula(6, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aC5_aC5)"), 
m_pDoc->GetFormula(7, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_Ca5_Ca5)"), 
m_pDoc->GetFormula(8, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa8)"),
+                             m_pDoc->GetFormula(9, 17, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=SUM(Range_aCa5_aCa10)"),
+                             m_pDoc->GetFormula(10, 17, srcSheet));
 
         CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(1, 17, srcSheet));
         CPPUNIT_ASSERT_EQUAL(35.0, m_pDoc->GetValue(2, 17, srcSheet));
@@ -3844,55 +3902,55 @@ void TestCopyPaste::checkCopyPasteSpecialTranspose(bool 
bSkipEmpty, bool bCut)
         CPPUNIT_ASSERT_EQUAL(-27.0, m_pDoc->GetValue(10, 17, srcSheet));
 
         // Existing references to the destination range must not change
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D1"), getFormula(3, 101, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D2"), getFormula(3, 102, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D3"), getFormula(3, 103, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D4"), getFormula(3, 104, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D5"), getFormula(3, 105, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D6"), getFormula(3, 106, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D7"), getFormula(3, 107, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E1"), getFormula(4, 101, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E2"), getFormula(4, 102, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E3"), getFormula(4, 103, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E4"), getFormula(4, 104, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E5"), getFormula(4, 105, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E6"), getFormula(4, 106, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E7"), getFormula(4, 107, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F1"), getFormula(5, 101, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F2"), getFormula(5, 102, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F3"), getFormula(5, 103, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F4"), getFormula(5, 104, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F5"), getFormula(5, 105, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F6"), getFormula(5, 106, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F7"), getFormula(5, 107, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G1"), getFormula(6, 101, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G2"), getFormula(6, 102, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G3"), getFormula(6, 103, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G4"), getFormula(6, 104, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G5"), getFormula(6, 105, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G6"), getFormula(6, 106, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G7"), getFormula(6, 107, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H1"), getFormula(7, 101, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H2"), getFormula(7, 102, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H3"), getFormula(7, 103, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H4"), getFormula(7, 104, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H5"), getFormula(7, 105, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H6"), getFormula(7, 106, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H7"), getFormula(7, 107, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I1"), getFormula(8, 101, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I2"), getFormula(8, 102, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I3"), getFormula(8, 103, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I4"), getFormula(8, 104, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I5"), getFormula(8, 105, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I6"), getFormula(8, 106, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I7"), getFormula(8, 107, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J1"), getFormula(9, 101, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J2"), getFormula(9, 102, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J3"), getFormula(9, 103, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J4"), getFormula(9, 104, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J5"), getFormula(9, 105, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J6"), getFormula(9, 106, 
srcSheet));
-        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J7"), getFormula(9, 107, 
srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D1"), m_pDoc->GetFormula(3, 
101, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D2"), m_pDoc->GetFormula(3, 
102, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D3"), m_pDoc->GetFormula(3, 
103, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D4"), m_pDoc->GetFormula(3, 
104, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D5"), m_pDoc->GetFormula(3, 
105, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D6"), m_pDoc->GetFormula(3, 
106, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.D7"), m_pDoc->GetFormula(3, 
107, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E1"), m_pDoc->GetFormula(4, 
101, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E2"), m_pDoc->GetFormula(4, 
102, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E3"), m_pDoc->GetFormula(4, 
103, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E4"), m_pDoc->GetFormula(4, 
104, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E5"), m_pDoc->GetFormula(4, 
105, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E6"), m_pDoc->GetFormula(4, 
106, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.E7"), m_pDoc->GetFormula(4, 
107, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F1"), m_pDoc->GetFormula(5, 
101, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F2"), m_pDoc->GetFormula(5, 
102, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F3"), m_pDoc->GetFormula(5, 
103, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F4"), m_pDoc->GetFormula(5, 
104, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F5"), m_pDoc->GetFormula(5, 
105, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F6"), m_pDoc->GetFormula(5, 
106, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.F7"), m_pDoc->GetFormula(5, 
107, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G1"), m_pDoc->GetFormula(6, 
101, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G2"), m_pDoc->GetFormula(6, 
102, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G3"), m_pDoc->GetFormula(6, 
103, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G4"), m_pDoc->GetFormula(6, 
104, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G5"), m_pDoc->GetFormula(6, 
105, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G6"), m_pDoc->GetFormula(6, 
106, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.G7"), m_pDoc->GetFormula(6, 
107, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H1"), m_pDoc->GetFormula(7, 
101, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H2"), m_pDoc->GetFormula(7, 
102, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H3"), m_pDoc->GetFormula(7, 
103, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H4"), m_pDoc->GetFormula(7, 
104, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H5"), m_pDoc->GetFormula(7, 
105, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H6"), m_pDoc->GetFormula(7, 
106, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.H7"), m_pDoc->GetFormula(7, 
107, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I1"), m_pDoc->GetFormula(8, 
101, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I2"), m_pDoc->GetFormula(8, 
102, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I3"), m_pDoc->GetFormula(8, 
103, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I4"), m_pDoc->GetFormula(8, 
104, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I5"), m_pDoc->GetFormula(8, 
105, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I6"), m_pDoc->GetFormula(8, 
106, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.I7"), m_pDoc->GetFormula(8, 
107, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J1"), m_pDoc->GetFormula(9, 
101, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J2"), m_pDoc->GetFormula(9, 
102, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J3"), m_pDoc->GetFormula(9, 
103, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J4"), m_pDoc->GetFormula(9, 
104, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J5"), m_pDoc->GetFormula(9, 
105, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J6"), m_pDoc->GetFormula(9, 
106, srcSheet));
+        CPPUNIT_ASSERT_EQUAL(OUString("=DestSheet.J7"), m_pDoc->GetFormula(9, 
107, srcSheet));
     }
 }
 
@@ -3942,14 +4000,17 @@ void 
TestCopyPaste::checkCopyPasteSpecialFilteredTranspose(bool bSkipEmpty)
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(2, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("1000"), m_pDoc->GetString(2, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed D3", 11.0, m_pDoc->GetValue(3, 2, 
destSheet));
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed D3", OUString("=D2+10"), 
getFormula(3, 2, destSheet));
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed E3", OUString("=E5+30"), 
getFormula(4, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed D3", OUString("=D2+10"),
+                                 m_pDoc->GetFormula(3, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed E3", OUString("=E5+30"),
+                                 m_pDoc->GetFormula(4, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed E3", 35.0, m_pDoc->GetValue(4, 2, 
destSheet));
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed F3", OUString("=D2+40"), 
getFormula(5, 2, destSheet));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed F3", OUString("=D2+40"),
+                                 m_pDoc->GetFormula(5, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed F3", 41.0, m_pDoc->GetValue(5, 2, 
destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed F3", 11.0, m_pDoc->GetValue(6, 2, 
destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed G3 (repetition of D3)", 
OUString("=G2+10"),
-                                 getFormula(6, 2, destSheet));
+                                 m_pDoc->GetFormula(6, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(7, 2, destSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("1000"), m_pDoc->GetString(7, 2, destSheet));
     // row 3, strings
@@ -3985,7 +4046,7 @@ void 
TestCopyPaste::checkCopyPasteSpecialFilteredTranspose(bool bSkipEmpty)
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(2, 5, destSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("1000"), m_pDoc->GetString(2, 5, destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed D6", OUString("=D2+F2+60"),
-                                 getFormula(3, 5, destSheet));
+                                 m_pDoc->GetFormula(3, 5, destSheet));
     // formulas over filtered rows are not adjusted
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed D6", 65.0,
                                  m_pDoc->GetValue(ScAddress(3, 5, destSheet)));
@@ -3994,12 +4055,12 @@ void 
TestCopyPaste::checkCopyPasteSpecialFilteredTranspose(bool bSkipEmpty)
     else
         CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(4, 5, destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed F6", OUString("=C2+E2+70"),
-                                 getFormula(5, 5, destSheet));
+                                 m_pDoc->GetFormula(5, 5, destSheet));
     // F6,  formulas over filtered rows are not adjusted
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed F6", 1073.0,
                                  m_pDoc->GetValue(ScAddress(5, 5, destSheet)));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed G6 (repetition of D6)", 
OUString("=G2+I2+60"),
-                                 getFormula(6, 5, destSheet));
+                                 m_pDoc->GetFormula(6, 5, destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed G6 (repetition of D6)", 1061.0,
                                  m_pDoc->GetValue(6, 5, destSheet));
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(7, 5, destSheet));
@@ -4008,17 +4069,18 @@ void 
TestCopyPaste::checkCopyPasteSpecialFilteredTranspose(bool bSkipEmpty)
     CPPUNIT_ASSERT_EQUAL(1000.0, m_pDoc->GetValue(2, 6, destSheet));
     CPPUNIT_ASSERT_EQUAL(OUString("1000"), m_pDoc->GetString(2, 6, destSheet));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("transposed D7", 
OUString("=SUMIF(D2:G2;\"<4\")"),

... etc. - the rest is truncated

Reply via email to