sc/qa/extras/vba-macro-test.cxx                                |    4 
 sc/qa/unit/uicalc/uicalc2.cxx                                  |   10 
 sc/source/ui/Accessibility/AccessibleDocument.cxx              |    2 
 sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx           |   25 -
 sc/source/ui/StatisticsDialogs/SamplingDialog.cxx              |    2 
 sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx |    2 
 sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx |    2 
 sc/source/ui/app/client.cxx                                    |    2 
 sc/source/ui/app/inputhdl.cxx                                  |   10 
 sc/source/ui/app/inputwin.cxx                                  |    6 
 sc/source/ui/condformat/condformatdlg.cxx                      |    4 
 sc/source/ui/condformat/condformateasydlg.cxx                  |    3 
 sc/source/ui/dbgui/consdlg.cxx                                 |    4 
 sc/source/ui/dbgui/filtdlg.cxx                                 |    2 
 sc/source/ui/dbgui/foptmgr.cxx                                 |    4 
 sc/source/ui/dbgui/tpsort.cxx                                  |    8 
 sc/source/ui/dbgui/tpsubt.cxx                                  |    4 
 sc/source/ui/dbgui/validate.cxx                                |    2 
 sc/source/ui/dialogs/SparklineDataRangeDialog.cxx              |    2 
 sc/source/ui/docshell/docsh4.cxx                               |   14 -
 sc/source/ui/docshell/docsh6.cxx                               |    2 
 sc/source/ui/drawfunc/drawsh.cxx                               |    2 
 sc/source/ui/drawfunc/drtxtob.cxx                              |    2 
 sc/source/ui/drawfunc/fuins1.cxx                               |    6 
 sc/source/ui/drawfunc/fuins2.cxx                               |    8 
 sc/source/ui/drawfunc/fupoor.cxx                               |    2 
 sc/source/ui/drawfunc/fusel.cxx                                |    6 
 sc/source/ui/drawfunc/fusel2.cxx                               |    2 
 sc/source/ui/drawfunc/futext3.cxx                              |    2 
 sc/source/ui/formdlg/formula.cxx                               |    4 
 sc/source/ui/inc/olinewin.hxx                                  |    2 
 sc/source/ui/inc/viewdata.hxx                                  |   15 -
 sc/source/ui/miscdlgs/anyrefdg.cxx                             |    4 
 sc/source/ui/miscdlgs/autofmt.cxx                              |    2 
 sc/source/ui/miscdlgs/datafdlg.cxx                             |    2 
 sc/source/ui/miscdlgs/duplicaterecordsdlg.cxx                  |    4 
 sc/source/ui/miscdlgs/inscldlg.cxx                             |    2 
 sc/source/ui/namedlg/namepast.cxx                              |    3 
 sc/source/ui/navipi/navipi.cxx                                 |    2 
 sc/source/ui/optdlg/tpusrlst.cxx                               |    4 
 sc/source/ui/pagedlg/areasdlg.cxx                              |    2 
 sc/source/ui/pagedlg/tphf.cxx                                  |    2 
 sc/source/ui/uitest/uiobject.cxx                               |   14 -
 sc/source/ui/undo/undobase.cxx                                 |    6 
 sc/source/ui/undo/undoblk.cxx                                  |    6 
 sc/source/ui/undo/undoblk2.cxx                                 |    4 
 sc/source/ui/undo/undoblk3.cxx                                 |    2 
 sc/source/ui/undo/undocell.cxx                                 |    2 
 sc/source/ui/undo/undodat.cxx                                  |   40 +--
 sc/source/ui/undo/undotab.cxx                                  |    2 
 sc/source/ui/undo/undoutil.cxx                                 |    2 
 sc/source/ui/unoobj/dispuno.cxx                                |    2 
 sc/source/ui/unoobj/docuno.cxx                                 |   10 
 sc/source/ui/unoobj/viewuno.cxx                                |   24 -
 sc/source/ui/view/cellsh.cxx                                   |   24 -
 sc/source/ui/view/cellsh1.cxx                                  |   50 +--
 sc/source/ui/view/cellsh2.cxx                                  |   22 -
 sc/source/ui/view/cellsh3.cxx                                  |   12 
 sc/source/ui/view/cellsh4.cxx                                  |    4 
 sc/source/ui/view/cliputil.cxx                                 |    2 
 sc/source/ui/view/colrowba.cxx                                 |   10 
 sc/source/ui/view/dbfunc.cxx                                   |   17 -
 sc/source/ui/view/dbfunc2.cxx                                  |    2 
 sc/source/ui/view/dbfunc3.cxx                                  |   56 ++--
 sc/source/ui/view/drawvie3.cxx                                 |    2 
 sc/source/ui/view/drawview.cxx                                 |    6 
 sc/source/ui/view/editsh.cxx                                   |    4 
 sc/source/ui/view/formatsh.cxx                                 |   12 
 sc/source/ui/view/gridwin.cxx                                  |   95 +++----
 sc/source/ui/view/gridwin2.cxx                                 |   20 -
 sc/source/ui/view/gridwin3.cxx                                 |    4 
 sc/source/ui/view/gridwin4.cxx                                 |   32 +-
 sc/source/ui/view/gridwin5.cxx                                 |    6 
 sc/source/ui/view/gridwin_dbgutil.cxx                          |    6 
 sc/source/ui/view/hdrcont.cxx                                  |   10 
 sc/source/ui/view/pivotsh.cxx                                  |    4 
 sc/source/ui/view/prevwsh.cxx                                  |    2 
 sc/source/ui/view/printfun.cxx                                 |    2 
 sc/source/ui/view/select.cxx                                   |   24 -
 sc/source/ui/view/selectionstate.cxx                           |    2 
 sc/source/ui/view/tabcont.cxx                                  |   10 
 sc/source/ui/view/tabview.cxx                                  |   44 +--
 sc/source/ui/view/tabview2.cxx                                 |   30 +-
 sc/source/ui/view/tabview3.cxx                                 |   64 ++--
 sc/source/ui/view/tabview4.cxx                                 |   24 -
 sc/source/ui/view/tabview5.cxx                                 |    8 
 sc/source/ui/view/tabvwsh2.cxx                                 |    2 
 sc/source/ui/view/tabvwsh3.cxx                                 |   24 -
 sc/source/ui/view/tabvwsh4.cxx                                 |   12 
 sc/source/ui/view/tabvwsh5.cxx                                 |   12 
 sc/source/ui/view/tabvwsh8.cxx                                 |    2 
 sc/source/ui/view/tabvwsha.cxx                                 |   18 -
 sc/source/ui/view/tabvwshb.cxx                                 |    8 
 sc/source/ui/view/tabvwshc.cxx                                 |   28 +-
 sc/source/ui/view/tabvwshf.cxx                                 |   28 +-
 sc/source/ui/view/tabvwshg.cxx                                 |    2 
 sc/source/ui/view/viewdata.cxx                                 |  132 
+++++-----
 sc/source/ui/view/viewfun2.cxx                                 |   42 +--
 sc/source/ui/view/viewfun3.cxx                                 |   12 
 sc/source/ui/view/viewfun4.cxx                                 |   16 -
 sc/source/ui/view/viewfun5.cxx                                 |    8 
 sc/source/ui/view/viewfun6.cxx                                 |    8 
 sc/source/ui/view/viewfun7.cxx                                 |   12 
 sc/source/ui/view/viewfunc.cxx                                 |   70 ++---
 104 files changed, 684 insertions(+), 668 deletions(-)

New commits:
commit 61629da57ca59dd60b048ab14d522db9f53f355b
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Tue Aug 26 00:26:19 2025 +0200
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Wed Sep 3 16:37:27 2025 +0200

    sc: rename GetTabNo and GetTab to better names
    
    GetTabNo to CurrentTabForData to make it clear what it's usage
    should be and that it is not just a simple getter for a tab, but
    has logic behind it.
    
    GetTab was also renamed to GetTabNumber - it's a direct accessor
    for the current view's tab number.
    
    Document both methods.
    
    Change-Id: Ic855be43b2d38e421e0f9472d182baa20bb37feb
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190201
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>
    Tested-by: Jenkins

diff --git a/sc/qa/extras/vba-macro-test.cxx b/sc/qa/extras/vba-macro-test.cxx
index 2b927c1d7e0b..d4d059f68602 100644
--- a/sc/qa/extras/vba-macro-test.cxx
+++ b/sc/qa/extras/vba-macro-test.cxx
@@ -161,7 +161,7 @@ CPPUNIT_TEST_FIXTURE(VBAMacroTest, 
testSheetAndColumnSelectAndHide)
     CPPUNIT_ASSERT(rDoc.ColHidden(3, 2));
     CPPUNIT_ASSERT(rDoc.ColHidden(4, 2));
 
-    CPPUNIT_ASSERT_EQUAL(SCTAB(0), rViewData.GetTabNo());
+    CPPUNIT_ASSERT_EQUAL(SCTAB(0), rViewData.CurrentTabForData());
 
     executeMacro(
         
u"vnd.sun.Star.script:VBAProject.ThisWorkbook.testUnhide?language=Basic&location=document"_ustr);
@@ -178,7 +178,7 @@ CPPUNIT_TEST_FIXTURE(VBAMacroTest, 
testSheetAndColumnSelectAndHide)
     CPPUNIT_ASSERT(!rDoc.ColHidden(3, 2));
     CPPUNIT_ASSERT(!rDoc.ColHidden(4, 2));
 
-    CPPUNIT_ASSERT_EQUAL(SCTAB(0), rViewData.GetTabNo());
+    CPPUNIT_ASSERT_EQUAL(SCTAB(0), rViewData.CurrentTabForData());
 }
 
 CPPUNIT_TEST_FIXTURE(VBAMacroTest, testPrintArea)
diff --git a/sc/qa/unit/uicalc/uicalc2.cxx b/sc/qa/unit/uicalc/uicalc2.cxx
index d228ee82717a..dc69d435d524 100644
--- a/sc/qa/unit/uicalc/uicalc2.cxx
+++ b/sc/qa/unit/uicalc/uicalc2.cxx
@@ -274,11 +274,11 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest2, testTdf131455)
         lcl_AssertCurrentCursorPosition(*pDocSh, u"N5");
     }
 
-    CPPUNIT_ASSERT_EQUAL(sal_Int16(0), 
getViewShell()->GetViewData().GetTabNo());
+    CPPUNIT_ASSERT_EQUAL(sal_Int16(0), 
getViewShell()->GetViewData().CurrentTabForData());
 
     dispatchCommand(mxComponent, u".uno:JumpToNextTable"_ustr, {});
 
-    CPPUNIT_ASSERT_EQUAL(sal_Int16(1), 
getViewShell()->GetViewData().GetTabNo());
+    CPPUNIT_ASSERT_EQUAL(sal_Int16(1), 
getViewShell()->GetViewData().CurrentTabForData());
     lcl_AssertCurrentCursorPosition(*pDocSh, u"A4");
 
     // Go to row 9
@@ -294,7 +294,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest2, testTdf131455)
 
     dispatchCommand(mxComponent, u".uno:JumpToPrevTable"_ustr, {});
 
-    CPPUNIT_ASSERT_EQUAL(sal_Int16(0), 
getViewShell()->GetViewData().GetTabNo());
+    CPPUNIT_ASSERT_EQUAL(sal_Int16(0), 
getViewShell()->GetViewData().CurrentTabForData());
     lcl_AssertCurrentCursorPosition(*pDocSh, u"N5");
 
     //Cursor can't move forward to the right
@@ -310,11 +310,11 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest2, testTdf124818)
     createScDoc("tdf124818.xls");
     ScDocument* pDoc = getScDoc();
 
-    CPPUNIT_ASSERT_EQUAL(sal_Int16(2), 
getViewShell()->GetViewData().GetTabNo());
+    CPPUNIT_ASSERT_EQUAL(sal_Int16(2), 
getViewShell()->GetViewData().CurrentTabForData());
 
     dispatchCommand(mxComponent, u".uno:JumpToPrevTable"_ustr, {});
 
-    CPPUNIT_ASSERT_EQUAL(sal_Int16(1), 
getViewShell()->GetViewData().GetTabNo());
+    CPPUNIT_ASSERT_EQUAL(sal_Int16(1), 
getViewShell()->GetViewData().CurrentTabForData());
 
     ScDrawLayer* pDrawLayer = pDoc->GetDrawLayer();
     SdrPage* pPage = pDrawLayer->GetPage(1);
diff --git a/sc/source/ui/Accessibility/AccessibleDocument.cxx 
b/sc/source/ui/Accessibility/AccessibleDocument.cxx
index 08419e24281d..5c57587d2bab 100644
--- a/sc/source/ui/Accessibility/AccessibleDocument.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocument.cxx
@@ -1984,7 +1984,7 @@ SCTAB ScAccessibleDocument::getVisibleTable() const
 {
     SCTAB nVisibleTable(0);
     if (mpViewShell)
-        nVisibleTable = mpViewShell->GetViewData().GetTabNo();
+        nVisibleTable = mpViewShell->GetViewData().CurrentTabForData();
     return nVisibleTable;
 }
 
diff --git a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx 
b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
index 29afdde4284b..e0b053f0bdb0 100644
--- a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
+++ b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
@@ -511,7 +511,7 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& rBC, 
const SfxHint& rHint
                 bool bIsMultMark = refScMarkData.IsMultiMarked();
                 bool bNewMarked = refScMarkData.GetTableSelect(aNewCell.Tab()) 
&& ( bIsMark || bIsMultMark );
 //              sal_Bool bNewCellSelected = 
isAccessibleSelected(aNewCell.Row(), aNewCell.Col());
-                sal_uInt16 nTab = rViewData.GetTabNo();
+                sal_uInt16 nTab = rViewData.CurrentTabForData();
                 const ScRange& aMarkRange = refScMarkData.GetMarkArea();
                 ScDocument* pDoc= GetDocument(mpViewShell);
                 //Mark All
@@ -909,7 +909,7 @@ rtl::Reference<ScAccessibleCell> 
ScAccessibleSpreadsheet::GetAccessibleCellAt(sa
 {
     if (IsFormulaMode())
     {
-        ScAddress aCellAddress(static_cast<SCCOL>(nColumn), nRow, 
mpViewShell->GetViewData().GetTabNo());
+        ScAddress aCellAddress(static_cast<SCCOL>(nColumn), nRow, 
mpViewShell->GetViewData().CurrentTabForData());
         if ((aCellAddress == m_aFormulaActiveCell) && m_pAccFormulaCell.is())
         {
             return m_pAccFormulaCell;
@@ -1121,10 +1121,11 @@ void SAL_CALL 
ScAccessibleSpreadsheet::selectAllAccessibleChildren(  )
     {
         ScDocument* pDoc = GetDocument(mpViewShell);
         ScViewData& rViewData = mpViewShell->GetViewData();
-        mpViewShell->InitRefMode( 0, 0, rViewData.GetTabNo(), SC_REFTYPE_REF );
-        rViewData.SetRefStart(0, 0, rViewData.GetTabNo());
-        rViewData.SetRefEnd(pDoc->MaxCol(), pDoc->MaxRow(), 
rViewData.GetTabNo());
-        mpViewShell->UpdateRef(pDoc->MaxCol(), pDoc->MaxRow(), 
rViewData.GetTabNo());
+        auto nCurrentTab = rViewData.CurrentTabForData();
+        mpViewShell->InitRefMode( 0, 0, nCurrentTab, SC_REFTYPE_REF );
+        rViewData.SetRefStart(0, 0, nCurrentTab);
+        rViewData.SetRefEnd(pDoc->MaxCol(), pDoc->MaxRow(), nCurrentTab);
+        mpViewShell->UpdateRef(pDoc->MaxCol(), pDoc->MaxRow(), nCurrentTab);
     }
     else
         mpViewShell->SelectAll();
@@ -1211,7 +1212,7 @@ void SAL_CALL 
ScAccessibleSpreadsheet::deselectAccessibleChild( sal_Int64 nChild
     if (IsFormulaMode())
     {
         if(IsScAddrFormulaSel(
-            ScAddress(static_cast<SCCOL>(nCol), 
nRow,mpViewShell->GetViewData().GetTabNo()))
+            ScAddress(static_cast<SCCOL>(nCol), 
nRow,mpViewShell->GetViewData().CurrentTabForData()))
             )
         {
             SelectCell(nRow, nCol, true);
@@ -1234,8 +1235,8 @@ void ScAccessibleSpreadsheet::SelectCell(sal_Int32 nRow, 
sal_Int32 nCol, bool bD
         {
             ScViewData& rViewData = mpViewShell->GetViewData();
 
-            mpViewShell->InitRefMode( static_cast<SCCOL>(nCol), nRow, 
rViewData.GetTabNo(), SC_REFTYPE_REF );
-            mpViewShell->UpdateRef(static_cast<SCCOL>(nCol), nRow, 
rViewData.GetTabNo());
+            mpViewShell->InitRefMode( static_cast<SCCOL>(nCol), nRow, 
rViewData.CurrentTabForData(), SC_REFTYPE_REF );
+            mpViewShell->UpdateRef(static_cast<SCCOL>(nCol), nRow, 
rViewData.CurrentTabForData());
         }
         return ;
     }
@@ -1568,7 +1569,7 @@ bool ScAccessibleSpreadsheet::IsScAddrFormulaSel(const 
ScAddress &addr) const
 {
     return addr.Col() >= m_nMinX && addr.Col() <= m_nMaxX &&
         addr.Row() >= m_nMinY && addr.Row() <= m_nMaxY &&
-        addr.Tab() == mpViewShell->GetViewData().GetTabNo();
+        addr.Tab() == mpViewShell->GetViewData().CurrentTabForData();
 }
 
 bool ScAccessibleSpreadsheet::CheckChildIndex(sal_Int64 nIndex) const
@@ -1588,7 +1589,7 @@ ScAddress 
ScAccessibleSpreadsheet::GetChildIndexAddress(sal_Int64 nIndex) const
     return ScAddress(
         static_cast<SCCOL>((nIndex - nIndex % nRowAll) / nRowAll +  + m_nMinX),
         nIndex % nRowAll + m_nMinY,
-        mpViewShell->GetViewData().GetTabNo()
+        mpViewShell->GetViewData().CurrentTabForData()
         );
 }
 
@@ -1628,7 +1629,7 @@ bool 
ScAccessibleSpreadsheet::GetFormulaCurrentFocusCell(ScAddress &addr)
     ScDocument* pDoc = GetDocument(mpViewShell);
     if( /* Always true: nRefX >= 0 && */ nRefX <= pDoc->MaxCol() && nRefY >= 0 
&& nRefY <= pDoc->MaxRow())
     {
-        addr = ScAddress(nRefX,nRefY,rViewData.GetTabNo());
+        addr = ScAddress(nRefX, nRefY, rViewData.CurrentTabForData());
         return true;
     }
     return false;
diff --git a/sc/source/ui/StatisticsDialogs/SamplingDialog.cxx 
b/sc/source/ui/StatisticsDialogs/SamplingDialog.cxx
index cacbf772bf20..97d83283463b 100644
--- a/sc/source/ui/StatisticsDialogs/SamplingDialog.cxx
+++ b/sc/source/ui/StatisticsDialogs/SamplingDialog.cxx
@@ -29,7 +29,7 @@ ScSamplingDialog::ScSamplingDialog(SfxBindings* pSfxBindings, 
SfxChildWindow* pC
     , mInputRange(ScAddress::INITIALIZE_INVALID)
     , mAddressDetails(mDocument.GetAddressConvention(), 0, 0)
     , mOutputAddress(ScAddress::INITIALIZE_INVALID)
-    , mCurrentAddress(rViewData.GetCurX(), rViewData.GetCurY(), 
rViewData.GetTabNo())
+    , mCurrentAddress(rViewData.GetCurX(), rViewData.GetCurY(), 
rViewData.CurrentTabForData())
     , mnLastSampleSizeValue(1)
     , mnLastPeriodValue(1)
     , mDialogLostFocus(false)
diff --git a/sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx 
b/sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx
index badba7855b70..7e866b3be2cc 100644
--- a/sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx
+++ b/sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx
@@ -67,7 +67,7 @@ ScStatisticsInputOutputDialog::ScStatisticsInputOutputDialog(
     , mxButtonOk(m_xBuilder->weld_button(u"ok"_ustr))
     , mxButtonCancel(m_xBuilder->weld_button(u"cancel"_ustr))
     , mpActiveEdit(nullptr)
-    , mCurrentAddress(rViewData.GetCurX(), rViewData.GetCurY(), 
rViewData.GetTabNo())
+    , mCurrentAddress(rViewData.GetCurX(), rViewData.GetCurY(), 
rViewData.CurrentTabForData())
     , mDialogLostFocus(false)
 {
     mxInputRangeEdit->SetReferences(this, mxInputRangeLabel.get());
diff --git a/sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx 
b/sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx
index 7b495a876b1f..5e00ac1968d1 100644
--- a/sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx
+++ b/sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx
@@ -43,7 +43,7 @@ ScStatisticsTwoVariableDialog::ScStatisticsTwoVariableDialog(
     , 
mxGroupByColumnsRadio(m_xBuilder->weld_radio_button(u"groupedby-columns-radio"_ustr))
     , 
mxGroupByRowsRadio(m_xBuilder->weld_radio_button(u"groupedby-rows-radio"_ustr))
     , mpActiveEdit(nullptr)
-    , mCurrentAddress(rViewData.GetCurX(), rViewData.GetCurY(), 
rViewData.GetTabNo() )
+    , mCurrentAddress(rViewData.GetCurX(), rViewData.GetCurY(), 
rViewData.CurrentTabForData() )
     , mDialogLostFocus(false)
 {
     mxVariable1RangeEdit->SetReferences(this, mxVariable1RangeLabel.get());
diff --git a/sc/source/ui/app/client.cxx b/sc/source/ui/app/client.cxx
index a13372ca9bdf..c5f6400e39d7 100644
--- a/sc/source/ui/app/client.cxx
+++ b/sc/source/ui/app/client.cxx
@@ -93,7 +93,7 @@ void ScClient::RequestNewObjectArea( tools::Rectangle& 
aLogicRect )
             aLogicRect.SetPos( aOldRect.TopLeft() );
     }
 
-    sal_uInt16 nTab = pViewSh->GetViewData().GetTabNo();
+    sal_uInt16 nTab = pViewSh->GetViewData().CurrentTabForData();
     SdrPage* pPage = 
pModel->GetPage(static_cast<sal_uInt16>(static_cast<sal_Int16>(nTab)));
     if ( !(pPage && aLogicRect != aOldRect) )
         return;
diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx
index c564832b8956..376da33c677e 100644
--- a/sc/source/ui/app/inputhdl.cxx
+++ b/sc/source/ui/app/inputhdl.cxx
@@ -442,7 +442,7 @@ handle_r1c1:
             {
                 //  Set tables if not specified
                 if ( (nFlags & ScRefFlags::TAB_3D) == ScRefFlags::ZERO)
-                    aRange.aStart.SetTab( 
pActiveViewSh->GetViewData().GetTabNo() );
+                    aRange.aStart.SetTab( 
pActiveViewSh->GetViewData().CurrentTabForData() );
                 if ( (nFlags & ScRefFlags::TAB2_3D) == ScRefFlags::ZERO)
                     aRange.aEnd.SetTab( aRange.aStart.Tab() );
 
@@ -571,7 +571,7 @@ void ScInputHandler::UpdateLokReferenceMarks()
         tools::Long nY2 = rViewData.GetRefEndY();
         tools::Long nTab = rViewData.GetRefStartZ();
 
-        if (rViewData.GetRefEndZ() == rViewData.GetTabNo())
+        if (rViewData.GetRefEndZ() == rViewData.CurrentTabForData())
             nTab = rViewData.GetRefEndZ();
 
         PutInOrder(nX1, nX2);
@@ -989,7 +989,7 @@ void ScInputHandler::UpdateSpellSettings( bool 
bFromStartTab )
         ScDocument& rDoc = rViewData.GetDocument();
         rDoc.ApplyAsianEditSettings( *mpEditEngine );
         mpEditEngine->SetDefaultHorizontalTextDirection(
-            rDoc.GetEditTextDirection( rViewData.GetTabNo() ) );
+            rDoc.GetEditTextDirection( rViewData.CurrentTabForData() ) );
         mpEditEngine->SetFirstWordCapitalization( false );
     }
 
@@ -2841,7 +2841,7 @@ void ScInputHandler::DataChanged( bool bFromTopNotify, 
bool bSetModified )
         }
         if (!bNeedGrow)
         {
-            bNeedGrow = rViewData.GetDocument().IsLayoutRTL( 
rViewData.GetTabNo() );
+            bNeedGrow = rViewData.GetDocument().IsLayoutRTL( 
rViewData.CurrentTabForData() );
         }
         if (bNeedGrow)
         {
@@ -3707,7 +3707,7 @@ void ScInputHandler::SetReference( const ScRange& rRef, 
const ScDocument& rDoc )
             aRefStr = rRef.Format(rDoc, ScRefFlags::VALID, aAddrDetails);
     }
     bool bLOKShowSelect = true;
-    if(comphelper::LibreOfficeKit::isActive() && 
pRefViewSh->GetViewData().GetRefTabNo() != pRefViewSh->GetViewData().GetTabNo())
+    if(comphelper::LibreOfficeKit::isActive() && 
pRefViewSh->GetViewData().GetRefTabNo() != 
pRefViewSh->GetViewData().CurrentTabForData())
         bLOKShowSelect = false;
 
     if (pTableView || pTopView)
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index fcbda98b50cb..f4fdbe4fdfe8 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -2457,7 +2457,7 @@ static ScNameInputType lcl_GetInputType( const OUString& 
rText )
     {
         ScViewData& rViewData = pViewSh->GetViewData();
         ScDocument& rDoc = rViewData.GetDocument();
-        SCTAB nTab = rViewData.GetTabNo();
+        SCTAB nTab = rViewData.CurrentTabForData();
         ScAddress::Details aDetails( rDoc.GetAddressConvention());
 
         // test in same order as in SID_CURRENTCELL execute
@@ -2619,7 +2619,7 @@ void ScPosWnd::DoEnter()
                             (rViewData.GetSimpleArea( aSelection ) == 
SC_MARK_SIMPLE) )
                     {
                         ScRangeName aNewRanges( *pNames );
-                        ScAddress aCursor( rViewData.GetCurX(), 
rViewData.GetCurY(), rViewData.GetTabNo() );
+                        ScAddress aCursor( rViewData.GetCurX(), 
rViewData.GetCurY(), rViewData.CurrentTabForData() );
                         OUString aContent(aSelection.Format(rDoc, 
ScRefFlags::RANGE_ABS_3D, rDoc.GetAddressConvention()));
                         ScRangeData* pNew = new ScRangeData( rDoc, aText, 
aContent, aCursor );
                         if ( aNewRanges.insert(pNew) )
@@ -2642,7 +2642,7 @@ void ScPosWnd::DoEnter()
                     {
                         // Note that SID_CURRENTCELL always expects address to
                         // be in Calc A1 format.  Convert the text.
-                        ScRange aRange(0,0, rViewData.GetTabNo());
+                        ScRange aRange(0,0, rViewData.CurrentTabForData());
                         aRange.ParseAny(aText, rDoc, 
rDoc.GetAddressConvention());
                         aText = aRange.Format(rDoc, ScRefFlags::RANGE_ABS_3D, 
::formula::FormulaGrammar::CONV_OOO);
                     }
diff --git a/sc/source/ui/condformat/condformatdlg.cxx 
b/sc/source/ui/condformat/condformatdlg.cxx
index 1b0a6195f950..204254522ae7 100644
--- a/sc/source/ui/condformat/condformatdlg.cxx
+++ b/sc/source/ui/condformat/condformatdlg.cxx
@@ -455,7 +455,7 @@ ScCondFormatDlg::ScCondFormatDlg(SfxBindings* pB, 
SfxChildWindow* pCW,
     else if (!mpDlgData->IsManaged())
     {
         ScDocument& rDoc = mrViewData.GetDocument();
-        pFormat = rDoc.GetCondFormList(mrViewData.GetTabNo())->GetFormat ( 
mnKey );
+        pFormat = 
rDoc.GetCondFormList(mrViewData.CurrentTabForData())->GetFormat ( mnKey );
     }
 
     ScRangeList aRange;
@@ -469,7 +469,7 @@ ScCondFormatDlg::ScCondFormatDlg(SfxBindings* pB, 
SfxChildWindow* pCW,
         mrViewData.GetMarkData().FillRangeListWithMarks(&aRange, false);
         if(aRange.empty())
         {
-            ScAddress aPos(mrViewData.GetCurX(), mrViewData.GetCurY(), 
mrViewData.GetTabNo());
+            ScAddress aPos(mrViewData.GetCurX(), mrViewData.GetCurY(), 
mrViewData.CurrentTabForData());
             aRange.push_back(ScRange(aPos));
         }
         mnKey = 0;
diff --git a/sc/source/ui/condformat/condformateasydlg.cxx 
b/sc/source/ui/condformat/condformateasydlg.cxx
index 78bec5d75f58..11ebbd142602 100644
--- a/sc/source/ui/condformat/condformateasydlg.cxx
+++ b/sc/source/ui/condformat/condformateasydlg.cxx
@@ -182,7 +182,8 @@ 
ConditionalFormatEasyDialog::ConditionalFormatEasyDialog(SfxBindings* pBindings,
     mrViewData.GetMarkData().FillRangeListWithMarks(&aRange, false);
     if (aRange.empty())
     {
-        ScAddress aPosition(mrViewData.GetCurX(), mrViewData.GetCurY(), 
mrViewData.GetTabNo());
+        ScAddress aPosition(mrViewData.GetCurX(), mrViewData.GetCurY(),
+                            mrViewData.CurrentTabForData());
         aRange.push_back(ScRange(aPosition));
     }
     maPosition = aRange.GetTopLeftCorner();
diff --git a/sc/source/ui/dbgui/consdlg.cxx b/sc/source/ui/dbgui/consdlg.cxx
index 09d0dea25ca2..517fccce1b06 100644
--- a/sc/source/ui/dbgui/consdlg.cxx
+++ b/sc/source/ui/dbgui/consdlg.cxx
@@ -285,7 +285,7 @@ bool ScConsolidateDlg::VerifyEdit( formula::RefEdit* pEd )
     if (pEd != m_xEdDataArea.get() && pEd != m_xEdDestArea.get())
         return false;
 
-    SCTAB    nTab    = rViewData.GetTabNo();
+    SCTAB nTab = rViewData.CurrentTabForData();
     bool bEditOk = false;
     OUString theCompleteStr;
     const formula::FormulaGrammar::AddressConvention eConv = 
rDoc.GetAddressConvention();
@@ -332,7 +332,7 @@ IMPL_LINK_NOARG(ScConsolidateDlg, OkHdl, weld::Button&, 
void)
     if ( nDataAreaCount > 0 )
     {
         ScRefAddress aDestAddress;
-        SCTAB       nTab = rViewData.GetTabNo();
+        SCTAB nTab = rViewData.CurrentTabForData();
         OUString    aDestPosStr( m_xEdDestArea->GetText() );
         const formula::FormulaGrammar::AddressConvention eConv = 
rDoc.GetAddressConvention();
 
diff --git a/sc/source/ui/dbgui/filtdlg.cxx b/sc/source/ui/dbgui/filtdlg.cxx
index 076b7ea12afa..260d97eec7fd 100644
--- a/sc/source/ui/dbgui/filtdlg.cxx
+++ b/sc/source/ui/dbgui/filtdlg.cxx
@@ -65,7 +65,7 @@ ScFilterDlg::ScFilterDlg(SfxBindings* pB, SfxChildWindow* 
pCW, weld::Window* pPa
     , theQueryData(static_cast<const 
ScQueryItem&>(rArgSet.Get(nWhichQuery)).GetQueryData())
     , rViewData(rData)
     , rDoc(rViewData.GetDocument())
-    , nSrcTab(rViewData.GetTabNo())
+    , nSrcTab(rViewData.CurrentTabForData())
     , bRefInputMode(false)
     , m_xLbConnect1(m_xBuilder->weld_combo_box(u"connect1"_ustr))
     , m_xLbField1(m_xBuilder->weld_combo_box(u"field1"_ustr))
diff --git a/sc/source/ui/dbgui/foptmgr.cxx b/sc/source/ui/dbgui/foptmgr.cxx
index 915c505bbd51..342d7adb6a22 100644
--- a/sc/source/ui/dbgui/foptmgr.cxx
+++ b/sc/source/ui/dbgui/foptmgr.cxx
@@ -81,10 +81,10 @@ void ScFilterOptionsMgr::Init()
     OUString theAreaStr;
     ScRange         theCurArea ( ScAddress( rQueryData.nCol1,
                                             rQueryData.nRow1,
-                                            rViewData.GetTabNo() ),
+                                            rViewData.CurrentTabForData() ),
                                  ScAddress( rQueryData.nCol2,
                                             rQueryData.nRow2,
-                                            rViewData.GetTabNo() ) );
+                                            rViewData.CurrentTabForData() ) );
     ScDBCollection* pDBColl     = rDoc.GetDBCollection();
     OUString theDbArea;
     OUString   theDbName(STR_DB_LOCAL_NONAME);
diff --git a/sc/source/ui/dbgui/tpsort.cxx b/sc/source/ui/dbgui/tpsort.cxx
index df4c2aaddbcf..f19c821ac76e 100644
--- a/sc/source/ui/dbgui/tpsort.cxx
+++ b/sc/source/ui/dbgui/tpsort.cxx
@@ -120,7 +120,7 @@ void ScTabPageSortFields::Init()
     if ( pDoc )
     {
         ScDBCollection* pDBColl = pDoc->GetDBCollection();
-        const SCTAB     nCurTab = pViewData->GetTabNo();
+        const SCTAB     nCurTab = pViewData->CurrentTabForData();
         if ( pDBColl )
         {
             ScDBData* pDBData
@@ -320,7 +320,7 @@ void ScTabPageSortFields::FillFieldLists( sal_uInt16 
nStartField )
 
     SCCOL   nFirstSortCol   = aSortData.nCol1;
     SCROW   nFirstSortRow   = aSortData.nRow1;
-    SCTAB   nTab        = pViewData->GetTabNo();
+    SCTAB   nTab        = pViewData->CurrentTabForData();
     sal_uInt16  i           = 1;
     nFieldArr.clear();
     nFieldArr.push_back(0);
@@ -608,7 +608,7 @@ void ScTabPageSortOptions::Reset( const SfxItemSet* /* 
rArgSet */ )
 
     if ( pDoc && !aSortData.bInplace )
     {
-        ScRefFlags nFormat = (aSortData.nDestTab != pViewData->GetTabNo())
+        ScRefFlags nFormat = (aSortData.nDestTab != 
pViewData->CurrentTabForData())
                             ? ScRefFlags::RANGE_ABS_3D
                             : ScRefFlags::RANGE_ABS;
 
@@ -718,7 +718,7 @@ DeactivateRC ScTabPageSortOptions::DeactivatePage( 
SfxItemSet* pSetP )
         {
             //  visible table is default for input without table
             //  must be changed to GetRefTabNo when sorting has RefInput!
-            thePos.SetTab( pViewData->GetTabNo() );
+            thePos.SetTab( pViewData->CurrentTabForData() );
         }
 
         ScRefFlags nResult = thePos.Parse( thePosStr, *pDoc, 
pDoc->GetAddressConvention() );
diff --git a/sc/source/ui/dbgui/tpsubt.cxx b/sc/source/ui/dbgui/tpsubt.cxx
index 6acfabef6fa6..8302c510b773 100644
--- a/sc/source/ui/dbgui/tpsubt.cxx
+++ b/sc/source/ui/dbgui/tpsubt.cxx
@@ -245,7 +245,7 @@ void ScTpSubTotalGroup::FillListBoxes()
 
     SCCOL   nFirstCol   = rSubTotalData.nCol1;
     SCROW   nFirstRow   = rSubTotalData.nRow1;
-    SCTAB   nTab        = pViewData->GetTabNo();
+    SCTAB   nTab        = pViewData->CurrentTabForData();
     SCCOL   nMaxCol     = rSubTotalData.nCol2;
     SCCOL   col;
     OUString  aFieldName;
@@ -525,7 +525,7 @@ bool ScTpSubTotalOptions::FillItemSet( SfxItemSet* rArgSet )
     theSubTotalData.bDoSort         = m_xBtnSort->get_active();
 
     theSubTotalData.bSummaryBelow   = m_xBtnSummary->get_active();
-    pDoc->SetTotalsRowBelow(pViewData->GetTabNo(), 
theSubTotalData.bSummaryBelow);
+    pDoc->SetTotalsRowBelow(pViewData->CurrentTabForData(), 
theSubTotalData.bSummaryBelow);
 
     theSubTotalData.bAscending      = m_xBtnAscending->get_active();
     theSubTotalData.bUserDef        = m_xBtnUserDef->get_active();
diff --git a/sc/source/ui/dbgui/validate.cxx b/sc/source/ui/dbgui/validate.cxx
index 57f8934fa477..321a6c6d19a8 100644
--- a/sc/source/ui/dbgui/validate.cxx
+++ b/sc/source/ui/dbgui/validate.cxx
@@ -205,7 +205,7 @@ void ScTPValidationValue::RefInputDonePostHdl()
 
         pOldParent->hide();
         ScViewData& rViewData = 
pValidationDlg->GetTabViewShell()->GetViewData();
-        SCTAB nCurTab = rViewData.GetTabNo();
+        SCTAB nCurTab = rViewData.CurrentTabForData();
         SCTAB nRefTab = rViewData.GetRefTabNo();
         // If RefInput switched to a different sheet from the data sheet,
         // switch back: fdo#53920
diff --git a/sc/source/ui/dialogs/SparklineDataRangeDialog.cxx 
b/sc/source/ui/dialogs/SparklineDataRangeDialog.cxx
index 9f59d8aced38..15150b5349f5 100644
--- a/sc/source/ui/dialogs/SparklineDataRangeDialog.cxx
+++ b/sc/source/ui/dialogs/SparklineDataRangeDialog.cxx
@@ -194,7 +194,7 @@ void SparklineDataRangeDialog::perform()
     ScRangeList aList{ maDataRange };
 
     auto& rDocFunc = mrViewData.GetDocShell().GetDocFunc();
-    rDocFunc.ChangeSparkline(mpSparkline, mrViewData.GetTabNo(), aList);
+    rDocFunc.ChangeSparkline(mpSparkline, mrViewData.CurrentTabForData(), 
aList);
 }
 
 } // end sc
diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx
index 3a5d2aac98bb..7571cdf06352 100644
--- a/sc/source/ui/docshell/docsh4.cxx
+++ b/sc/source/ui/docshell/docsh4.cxx
@@ -603,7 +603,7 @@ void ScDocShell::Execute( SfxRequest& rReq )
                     break;
 
                 ScDocument& rDoc = GetDocument();
-                const SCTAB nTab = pViewData->GetTabNo();
+                const SCTAB nTab = pViewData->CurrentTabForData();
 
                 // obtain the page-style’s ItemSet
                 OUString aStyleName = rDoc.GetPageStyle(nTab);
@@ -670,7 +670,7 @@ void ScDocShell::Execute( SfxRequest& rReq )
                 if (!pViewData)
                     break;
                 ScDocument& rDoc = GetDocument();
-                const SCTAB nTab = pViewData->GetTabNo();
+                const SCTAB nTab = pViewData->CurrentTabForData();
                 OUString aStyleName = rDoc.GetPageStyle(nTab);
                 ScStyleSheetPool* pStylePool = rDoc.GetStyleSheetPool();
                 SfxStyleSheetBase* pStyleSheet = pStylePool->Find(aStyleName, 
SfxStyleFamily::Page);
@@ -738,7 +738,7 @@ void ScDocShell::Execute( SfxRequest& rReq )
             }
 
             ScDocument& rDoc = GetDocument();
-            const SCTAB nTab = pViewData->GetTabNo();
+            const SCTAB nTab = pViewData->CurrentTabForData();
             OUString aStyleName = rDoc.GetPageStyle(nTab);
             ScStyleSheetPool* pStylePool = rDoc.GetStyleSheetPool();
             SfxStyleSheetBase* pStyleSheet = pStylePool->Find(aStyleName, 
SfxStyleFamily::Page);
@@ -1042,7 +1042,7 @@ void ScDocShell::Execute( SfxRequest& rReq )
                             if ( pSh )
                             {
                                 //! omit SetTabNo in DeleteTable?
-                                SCTAB nDispTab = pSh->GetViewData().GetTabNo();
+                                SCTAB nDispTab = 
pSh->GetViewData().CurrentTabForData();
                                 pSh->DeleteTable( nTab );
                                 pSh->SetTabNo(nDispTab);
                                 rReq.Done();
@@ -2481,7 +2481,7 @@ void ScDocShell::GetState( SfxItemSet &rSet )
                     if (pViewData)
                     {
                         ScDocument& rDoc = GetDocument();
-                        const SCTAB nTab = pViewData->GetTabNo();
+                        const SCTAB nTab = pViewData->CurrentTabForData();
                         OUString aStyleName = rDoc.GetPageStyle(nTab);
                         ScStyleSheetPool* pStylePool = 
rDoc.GetStyleSheetPool();
                         if (pStylePool)
@@ -2561,7 +2561,7 @@ void ScDocShell::GetState( SfxItemSet &rSet )
                         ScMarkData aMark = 
pViewShell->GetViewData().GetMarkData();
                         SCCOL  nCol = pViewShell->GetViewData().GetCurX();
                         SCROW  nRow = pViewShell->GetViewData().GetCurY();
-                        SCTAB  nTab = pViewShell->GetViewData().GetTabNo();
+                        SCTAB  nTab = 
pViewShell->GetViewData().CurrentTabForData();
 
                         aMark.SetMarkArea(ScRange(nCol, nRow, nTab));
                         const ScPatternAttr* pSelAttrs = 
GetDocument().GetSelectionPattern(aMark);
@@ -3048,7 +3048,7 @@ SCTAB ScDocShell::GetCurTab()
 
     ScViewData* pViewData = GetViewData();
 
-    return pViewData ? pViewData->GetTabNo() : static_cast<SCTAB>(0);
+    return pViewData ? pViewData->CurrentTabForData() : static_cast<SCTAB>(0);
 }
 
 ScTabViewShell* ScDocShell::GetBestViewShell( bool bOnlyVisible )
diff --git a/sc/source/ui/docshell/docsh6.cxx b/sc/source/ui/docshell/docsh6.cxx
index 1a06ccdbf17c..716e772dff3e 100644
--- a/sc/source/ui/docshell/docsh6.cxx
+++ b/sc/source/ui/docshell/docsh6.cxx
@@ -165,7 +165,7 @@ void ScDocShell::UpdateOle(const ScViewData& rViewData, 
bool bSnapSize)
         aNewArea = m_pDocument->GetEmbeddedRect();
     else
     {
-        SCTAB nTab = rViewData.GetTabNo();
+        SCTAB nTab = rViewData.CurrentTabForData();
         if ( nTab != m_pDocument->GetVisibleTab() )
             m_pDocument->SetVisibleTab( nTab );
 
diff --git a/sc/source/ui/drawfunc/drawsh.cxx b/sc/source/ui/drawfunc/drawsh.cxx
index 000a4ca1a61e..2d1d5fd21c32 100644
--- a/sc/source/ui/drawfunc/drawsh.cxx
+++ b/sc/source/ui/drawfunc/drawsh.cxx
@@ -187,7 +187,7 @@ void ScDrawShell::ExecDrawAttr( SfxRequest& rReq )
                 const sal_uLong newPosX = 
convertTwipToMm100(newPosXTwips->GetValue());
                 const sal_uLong newPosY = 
convertTwipToMm100(newPosYTwips->GetValue());
 
-                bool bNegateX = comphelper::LibreOfficeKit::isActive() && 
rViewData.GetDocument().IsLayoutRTL(rViewData.GetTabNo());
+                bool bNegateX = comphelper::LibreOfficeKit::isActive() && 
rViewData.GetDocument().IsLayoutRTL(rViewData.CurrentTabForData());
                 pView->MoveShapeHandle(handleNum, Point(bNegateX ? 
-static_cast<tools::Long>(newPosX) : newPosX, newPosY), OrdNum ? 
OrdNum->GetValue() : -1);
             }
         }
diff --git a/sc/source/ui/drawfunc/drtxtob.cxx 
b/sc/source/ui/drawfunc/drtxtob.cxx
index fa40da9828c6..8ef747b95a25 100644
--- a/sc/source/ui/drawfunc/drtxtob.cxx
+++ b/sc/source/ui/drawfunc/drtxtob.cxx
@@ -1206,7 +1206,7 @@ void ScDrawTextObjectBar::GetAttrState( SfxItemSet& 
rDestSet )
         if ( eAttrDir == SvxFrameDirection::Environment )
         {
             //  get "environment" direction from page style
-            if ( mrViewData.GetDocument().GetEditTextDirection( 
mrViewData.GetTabNo() ) == EEHorizontalTextDirection::R2L )
+            if ( mrViewData.GetDocument().GetEditTextDirection( 
mrViewData.CurrentTabForData() ) == EEHorizontalTextDirection::R2L )
                 eAttrDir = SvxFrameDirection::Horizontal_RL_TB;
             else
                 eAttrDir = SvxFrameDirection::Horizontal_LR_TB;
diff --git a/sc/source/ui/drawfunc/fuins1.cxx b/sc/source/ui/drawfunc/fuins1.cxx
index b0a59dc2db1c..38e6684c0dec 100644
--- a/sc/source/ui/drawfunc/fuins1.cxx
+++ b/sc/source/ui/drawfunc/fuins1.cxx
@@ -180,7 +180,7 @@ static void lcl_InsertGraphic( const Graphic& rGraphic,
     Point aInsertPos = rViewSh.GetInsertPos();
 
     ScViewData& rData = rViewSh.GetViewData();
-    if ( rData.GetDocument().IsNegativePage( rData.GetTabNo() ) )
+    if ( rData.GetDocument().IsNegativePage( rData.CurrentTabForData() ) )
         aInsertPos.AdjustX( -(aLogicSize.Width()) );       // move position to 
left edge
 
     ScLimitSizeOnDrawPage( aLogicSize, aInsertPos, pPage->GetSize() );
@@ -201,7 +201,7 @@ static void lcl_InsertGraphic( const Graphic& rGraphic,
     pObj->SetName(aName);
 
     if (aAnchorType == SCA_CELL || aAnchorType == SCA_CELL_RESIZE)
-        ScDrawLayer::SetCellAnchoredFromPosition(*pObj, rData.GetDocument(), 
rData.GetTabNo(),
+        ScDrawLayer::SetCellAnchoredFromPosition(*pObj, rData.GetDocument(), 
rData.CurrentTabForData(),
                                                  aAnchorType == 
SCA_CELL_RESIZE);
 
     //  don't select if from (dispatch) API, to allow subsequent cell 
operations
@@ -239,7 +239,7 @@ static void lcl_InsertMedia( const OUString& rMediaURL, 
bool bApi,
 
     ScLimitSizeOnDrawPage( aSize, aInsertPos, pPage->GetSize() );
 
-    if( rData.GetDocument().IsNegativePage( rData.GetTabNo() ) )
+    if( rData.GetDocument().IsNegativePage( rData.CurrentTabForData() ) )
         aInsertPos.AdjustX( -(aSize.Width()) );
 
     OUString realURL;
diff --git a/sc/source/ui/drawfunc/fuins2.cxx b/sc/source/ui/drawfunc/fuins2.cxx
index cec343f4bc60..8d38623adc5c 100644
--- a/sc/source/ui/drawfunc/fuins2.cxx
+++ b/sc/source/ui/drawfunc/fuins2.cxx
@@ -350,7 +350,7 @@ FuInsertOLE::FuInsertOLE(ScTabViewShell& rViewSh, 
vcl::Window* pWin, ScDrawView*
             ScViewData& rData = rViewSh.GetViewData();
 
             Point aPnt = rViewSh.GetInsertPos();
-            if ( rData.GetDocument().IsNegativePage( rData.GetTabNo() ) )
+            if ( rData.GetDocument().IsNegativePage( rData.CurrentTabForData() 
) )
                 aPnt.AdjustX( -(aSize.Width()) );      // move position to 
left edge
             tools::Rectangle aRect (aPnt, aSize);
             rtl::Reference<SdrOle2Obj> pObj = new SdrOle2Obj(
@@ -441,7 +441,7 @@ FuInsertChart::FuInsertChart(ScTabViewShell& rViewSh, 
vcl::Window* pWin, ScDrawV
         ScDocument& rDocument = rViewSh.GetViewData().GetDocument();
         ScDPObject* pObject = 
rDocument.GetDPAtCursor(rViewSh.GetViewData().GetCurX(),
                                                       
rViewSh.GetViewData().GetCurY(),
-                                                      
rViewSh.GetViewData().GetTabNo());
+                                                      
rViewSh.GetViewData().CurrentTabForData());
         if (pObject)
         {
             aRangeString = pObject->GetName();
@@ -545,7 +545,7 @@ FuInsertChart::FuInsertChart(ScTabViewShell& rViewSh, 
vcl::Window* pWin, ScDrawV
                 if ( pBoolItem->GetValue() )
                     nToTable = static_cast<sal_uInt16>(rScDoc.GetTableCount());
                 else
-                    nToTable = static_cast<sal_uInt16>(rData.GetTabNo());
+                    nToTable = 
static_cast<sal_uInt16>(rData.CurrentTabForData());
             }
         }
         else
@@ -580,7 +580,7 @@ FuInsertChart::FuInsertChart(ScTabViewShell& rViewSh, 
vcl::Window* pWin, ScDrawV
                 OSL_FAIL( "Could not create new table :-/" );
             }
         }
-        else if ( nToTable != rData.GetTabNo() )
+        else if ( nToTable != rData.CurrentTabForData() )
         {
             rViewSh.SetTabNo( nToTable, true );
         }
diff --git a/sc/source/ui/drawfunc/fupoor.cxx b/sc/source/ui/drawfunc/fupoor.cxx
index 1785a19c0fd0..b87e564b4c0c 100644
--- a/sc/source/ui/drawfunc/fupoor.cxx
+++ b/sc/source/ui/drawfunc/fupoor.cxx
@@ -84,7 +84,7 @@ void FuPoor::ForceScroll(const Point& aPixPos)
     if ( aPixPos.Y() >= aSize.Height() ) dy =  1;
 
     ScViewData& rViewData = rViewShell.GetViewData();
-    if ( rViewData.GetDocument().IsNegativePage( rViewData.GetTabNo() ) )
+    if ( rViewData.GetDocument().IsNegativePage( rViewData.CurrentTabForData() 
) )
         dx = -dx;
 
     ScSplitPos eWhich = rViewData.GetActivePart();
diff --git a/sc/source/ui/drawfunc/fusel.cxx b/sc/source/ui/drawfunc/fusel.cxx
index d6b95662c2d4..b30825b80696 100644
--- a/sc/source/ui/drawfunc/fusel.cxx
+++ b/sc/source/ui/drawfunc/fusel.cxx
@@ -90,7 +90,7 @@ bool FuSelection::MouseButtonDown(const MouseEvent& rMEvt)
     {
         ScViewData& rViewData = rViewShell.GetViewData();
         ScDocument& rDocument = rViewData.GetDocument();
-        if (rDocument.IsNegativePage(rViewData.GetTabNo()))
+        if (rDocument.IsNegativePage(rViewData.CurrentTabForData()))
             aMDPos.setX(-aMDPos.X());
     }
 
@@ -360,7 +360,7 @@ bool FuSelection::MouseButtonUp(const MouseEvent& rMEvt)
     ::std::vector< OUString > aExcludedChartNames;
     ScRangeListVector aProtectedChartRangesVector;
 
-    if (comphelper::LibreOfficeKit::isActive() && 
rDocument.IsNegativePage(rViewData.GetTabNo()))
+    if (comphelper::LibreOfficeKit::isActive() && 
rDocument.IsNegativePage(rViewData.CurrentTabForData()))
         aPnt.setX(-aPnt.X());
 
     if (pView && rMEvt.IsLeft())
@@ -547,7 +547,7 @@ bool FuSelection::MouseButtonUp(const MouseEvent& rMEvt)
         ScModelObj* pModelObj = rDocShell.GetModel();
         if ( pModelObj )
         {
-            SCTAB nTab = rViewData.GetTabNo();
+            SCTAB nTab = rViewData.CurrentTabForData();
             ScChartHelper::CreateProtectedChartListenersAndNotify( rDocument, 
pPage, pModelObj, nTab,
                 aProtectedChartRangesVector, aExcludedChartNames );
         }
diff --git a/sc/source/ui/drawfunc/fusel2.cxx b/sc/source/ui/drawfunc/fusel2.cxx
index 7dc045256f9b..0376edfae081 100644
--- a/sc/source/ui/drawfunc/fusel2.cxx
+++ b/sc/source/ui/drawfunc/fusel2.cxx
@@ -120,7 +120,7 @@ bool FuSelection::IsNoteCaptionClicked( const Point& rPos ) 
const
     {
         const ScViewData& rViewData = rViewShell.GetViewData();
         ScDocument& rDoc = rViewData.GetDocument();
-        SCTAB nTab = rViewData.GetTabNo();
+        SCTAB nTab = rViewData.CurrentTabForData();
         ScDocShell& rDocSh = rViewData.GetDocShell();
         bool bProtectDoc =  rDoc.IsTabProtected( nTab ) || rDocSh.IsReadOnly();
 
diff --git a/sc/source/ui/drawfunc/futext3.cxx 
b/sc/source/ui/drawfunc/futext3.cxx
index 999ade29e55c..e6048de37860 100644
--- a/sc/source/ui/drawfunc/futext3.cxx
+++ b/sc/source/ui/drawfunc/futext3.cxx
@@ -55,7 +55,7 @@ void FuText::StopEditMode()
 
     ScAddress aNotePos;
     ScPostIt* pNote = nullptr;
-    if( const ScDrawObjData* pCaptData = ScDrawLayer::GetNoteCaptionData( 
pObject, rViewData.GetTabNo() ) )
+    if( const ScDrawObjData* pCaptData = ScDrawLayer::GetNoteCaptionData( 
pObject, rViewData.CurrentTabForData() ) )
     {
         aNotePos = pCaptData->maStart;
         pNote = rDoc.GetNote( aNotePos );
diff --git a/sc/source/ui/formdlg/formula.cxx b/sc/source/ui/formdlg/formula.cxx
index 72e8e064a147..fe4bd74c126f 100644
--- a/sc/source/ui/formdlg/formula.cxx
+++ b/sc/source/ui/formdlg/formula.cxx
@@ -116,7 +116,7 @@ ScFormulaDlg::ScFormulaDlg(SfxBindings* pB, SfxChildWindow* 
pCW,
     m_pDoc = &rViewData.GetDocument();
     SCCOL nCol = rViewData.GetCurX();
     SCROW nRow = rViewData.GetCurY();
-    SCTAB nTab = rViewData.GetTabNo();
+    SCTAB nTab = rViewData.CurrentTabForData();
     m_CursorPos = ScAddress( nCol, nRow, nTab );
 
     m_pViewShell->InitFormEditData(rViewData.GetDocShell()); // create new
@@ -619,7 +619,7 @@ void ScFormulaDlg::switchBack()
 
     ScViewData& rVD=pScViewShell->GetViewData();
     SCTAB nExecTab = m_CursorPos.Tab();
-    if ( nExecTab != rVD.GetTabNo() )
+    if ( nExecTab != rVD.CurrentTabForData() )
         pScViewShell->SetTabNo( nExecTab );
 
     SCROW nRow = m_CursorPos.Row();
diff --git a/sc/source/ui/inc/olinewin.hxx b/sc/source/ui/inc/olinewin.hxx
index eade172add48..05a923b89713 100644
--- a/sc/source/ui/inc/olinewin.hxx
+++ b/sc/source/ui/inc/olinewin.hxx
@@ -80,7 +80,7 @@ private:
     /** Returns the calc document. */
     ScDocument&          GetDoc() const { return mrViewData.GetDocument(); }
     /** Returns the current sheet index. */
-    SCTAB                GetTab() const { return mrViewData.GetTabNo(); }
+    SCTAB                GetTab() const { return 
mrViewData.CurrentTabForData(); }
     /** Returns the outline array of the corresponding document. */
     const ScOutlineArray*       GetOutlineArray() const;
     /** Returns the specified outline entry. */
diff --git a/sc/source/ui/inc/viewdata.hxx b/sc/source/ui/inc/viewdata.hxx
index eea21ffcf17c..1cb8197a8ba3 100644
--- a/sc/source/ui/inc/viewdata.hxx
+++ b/sc/source/ui/inc/viewdata.hxx
@@ -395,8 +395,19 @@ public:
     SCTAB           GetRefTabNo() const                     { return 
nRefTabNo; }
     void            SetRefTabNo( SCTAB nNewTab )            { nRefTabNo = 
nNewTab; }
 
-    SCTAB GetTab() const { return mnTabNumber; }
-    SC_DLLPUBLIC SCTAB GetTabNo() const;
+    /** Returns the tab number for this view (UI)
+     *
+     * Directly return the value and ignore that there might be a sheet view 
tab.
+     */
+    SCTAB GetTabNumber() const { return mnTabNumber; }
+
+    /** Returns the tab that is currently used to fetch the data of a sheet
+     *
+     * This returns a different tab when view sheets are used. For a sheet view
+     * the data is stored in a different (sheet view specific) tab.
+     */
+    SC_DLLPUBLIC SCTAB CurrentTabForData() const;
+
     void SetSheetViewID(sc::SheetViewID nID)
     {
         pThisTab->mnSheetViewID = nID;
diff --git a/sc/source/ui/miscdlgs/anyrefdg.cxx 
b/sc/source/ui/miscdlgs/anyrefdg.cxx
index b409626ac778..1ac346539d41 100644
--- a/sc/source/ui/miscdlgs/anyrefdg.cxx
+++ b/sc/source/ui/miscdlgs/anyrefdg.cxx
@@ -187,7 +187,7 @@ void ScFormulaReferenceHelper::ShowFormulaReference(const 
OUString& rStr)
     ScTabViewShell* pTabViewShell=pViewData->GetViewShell();
     SCCOL nCol = pViewData->GetCurX();
     SCROW nRow = pViewData->GetCurY();
-    SCTAB nTab = pViewData->GetTabNo();
+    SCTAB nTab = pViewData->CurrentTabForData();
     ScAddress aPos( nCol, nRow, nTab );
 
     std::unique_ptr<ScTokenArray> pScTokA(m_pRefComp->CompileString(rStr));
@@ -321,7 +321,7 @@ void ScFormulaReferenceHelper::Init()
     ScDocument& rDoc = pViewData->GetDocument();
     SCCOL nCol = pViewData->GetCurX();
     SCROW nRow = pViewData->GetCurY();
-    SCTAB nTab = pViewData->GetTabNo();
+    SCTAB nTab = pViewData->CurrentTabForData();
     ScAddress aCursorPos( nCol, nRow, nTab );
 
     m_pRefComp.reset( new ScCompiler( rDoc, aCursorPos, rDoc.GetGrammar()) );
diff --git a/sc/source/ui/miscdlgs/autofmt.cxx 
b/sc/source/ui/miscdlgs/autofmt.cxx
index accb3c99b752..dda45d744191 100644
--- a/sc/source/ui/miscdlgs/autofmt.cxx
+++ b/sc/source/ui/miscdlgs/autofmt.cxx
@@ -426,7 +426,7 @@ void ScAutoFmtPreview::Init()
 
 void ScAutoFmtPreview::DetectRTL(const ScViewData& rViewData)
 {
-    SCTAB nCurrentTab = rViewData.GetTabNo();
+    SCTAB nCurrentTab = rViewData.CurrentTabForData();
     ScDocument& rDoc = rViewData.GetDocument();
     mbRTL = rDoc.IsLayoutRTL(nCurrentTab);
     xBreakIter = rDoc.GetBreakIterator();
diff --git a/sc/source/ui/miscdlgs/datafdlg.cxx 
b/sc/source/ui/miscdlgs/datafdlg.cxx
index f3c641804566..c5462ba149b0 100644
--- a/sc/source/ui/miscdlgs/datafdlg.cxx
+++ b/sc/source/ui/miscdlgs/datafdlg.cxx
@@ -56,7 +56,7 @@ ScDataFormDlg::ScDataFormDlg(weld::Window* pParent, 
ScTabViewShell* pTabViewShel
         nStartRow   = aStart.Row();
         nEndRow = aEnd.Row();
 
-        nTab = rViewData.GetTabNo();
+        nTab = rViewData.CurrentTabForData();
         bool bNoSelection(false);
         //if there is no selection
         if ((nStartCol == nEndCol) && (nStartRow == nEndRow))
diff --git a/sc/source/ui/miscdlgs/duplicaterecordsdlg.cxx 
b/sc/source/ui/miscdlgs/duplicaterecordsdlg.cxx
index 8a76221a2710..0786ebbf13fb 100644
--- a/sc/source/ui/miscdlgs/duplicaterecordsdlg.cxx
+++ b/sc/source/ui/miscdlgs/duplicaterecordsdlg.cxx
@@ -88,7 +88,7 @@ void ScDuplicateRecordsDlg::SetDialogData(bool bToggle)
         {
             for (int i = mrRange.aStart.Col(); i <= mrRange.aEnd.Col(); ++i)
             {
-                OUString aStr(ScAddress(i, 0, mrViewData.GetTabNo())
+                OUString aStr(ScAddress(i, 0, mrViewData.CurrentTabForData())
                                   .Format(ScRefFlags::COL_VALID, 
&mrViewData.GetDocument()));
                 InsertEntry(aStr, bToggle);
             }
@@ -148,7 +148,7 @@ void ScDuplicateRecordsDlg::Init()
         = 
officecfg::Office::Calc::Misc::HandleDuplicateRecords::DataIncludesHeaders::get();
 
     ScDBCollection* pDBColl = rDoc.GetDBCollection();
-    const SCTAB nCurTab = mrViewData.GetTabNo();
+    const SCTAB nCurTab = mrViewData.CurrentTabForData();
     if (pDBColl)
     {
         ScDBData* pDBData
diff --git a/sc/source/ui/miscdlgs/inscldlg.cxx 
b/sc/source/ui/miscdlgs/inscldlg.cxx
index bf11574c3ded..be6c067ae076 100644
--- a/sc/source/ui/miscdlgs/inscldlg.cxx
+++ b/sc/source/ui/miscdlgs/inscldlg.cxx
@@ -37,7 +37,7 @@ ScInsertCellDlg::ScInsertCellDlg(weld::Window* pParent, 
ScViewData& rViewData,
     , m_xNumberOfRows(m_xBuilder->weld_spin_button(u"number_of_rows"_ustr))
     , m_xNumberOfCols(m_xBuilder->weld_spin_button(u"number_of_columns"_ustr))
 {
-    if (rViewData.GetDocument().IsLayoutRTL(rViewData.GetTabNo()))
+    if (rViewData.GetDocument().IsLayoutRTL(rViewData.CurrentTabForData()))
         m_xBtnCellsRight->set_label(ScResId(SCSTR_INSERT_RTL));
 
     m_xNumberOfRows->set_range(1, MAX_INS_ROWS);
diff --git a/sc/source/ui/namedlg/namepast.cxx 
b/sc/source/ui/namedlg/namepast.cxx
index b31a4fbd0995..165eb6b946af 100644
--- a/sc/source/ui/namedlg/namepast.cxx
+++ b/sc/source/ui/namedlg/namepast.cxx
@@ -46,7 +46,8 @@ ScNamePasteDlg::ScNamePasteDlg(weld::Window* pParent, 
ScDocShell* pShell)
 
     ScAddress aPos;
     if (ScViewData* pViewData = ScDocShell::GetViewData())
-        aPos = ScAddress(pViewData->GetCurX(), pViewData->GetCurY(), 
pViewData->GetTabNo());
+        aPos
+            = ScAddress(pViewData->GetCurX(), pViewData->GetCurY(), 
pViewData->CurrentTabForData());
 
     std::unique_ptr<weld::TreeView> 
xTreeView(m_xBuilder->weld_tree_view(u"ctrl"_ustr));
     xTreeView->set_size_request(xTreeView->get_approximate_digit_width() * 75,
diff --git a/sc/source/ui/navipi/navipi.cxx b/sc/source/ui/navipi/navipi.cxx
index 938418bdd068..2729cfe9b215 100644
--- a/sc/source/ui/navipi/navipi.cxx
+++ b/sc/source/ui/navipi/navipi.cxx
@@ -741,7 +741,7 @@ void ScNavigatorDlg::UpdateTable( const SCTAB* pTab )
     if ( pTab )
         nCurTab = *pTab;
     else if ( ScViewData* pData = GetViewData() )
-        nCurTab = pData->GetTabNo();
+        nCurTab = pData->CurrentTabForData();
 }
 
 void ScNavigatorDlg::UpdateAll()
diff --git a/sc/source/ui/optdlg/tpusrlst.cxx b/sc/source/ui/optdlg/tpusrlst.cxx
index bb7c8a5fe581..a42961df0b2c 100644
--- a/sc/source/ui/optdlg/tpusrlst.cxx
+++ b/sc/source/ui/optdlg/tpusrlst.cxx
@@ -667,7 +667,7 @@ IMPL_LINK( ScTpUserLists, BtnClickHdl, weld::Button&, rBtn, 
void )
         {
             bAreaOk = ScRangeUtil::IsAbsArea( theAreaStr,
                                              *pDoc,
-                                             pViewData->GetTabNo(),
+                                             pViewData->CurrentTabForData(),
                                              &theAreaStr,
                                              &theStartPos,
                                              &theEndPos,
@@ -676,7 +676,7 @@ IMPL_LINK( ScTpUserLists, BtnClickHdl, weld::Button&, rBtn, 
void )
             {
                 bAreaOk = ScRangeUtil::IsAbsPos(  theAreaStr,
                                                  *pDoc,
-                                                 pViewData->GetTabNo(),
+                                                 
pViewData->CurrentTabForData(),
                                                  &theAreaStr,
                                                  &theStartPos,
                                                  pDoc->GetAddressConvention() 
);
diff --git a/sc/source/ui/pagedlg/areasdlg.cxx 
b/sc/source/ui/pagedlg/areasdlg.cxx
index 68772babbc9e..325616f01ea6 100644
--- a/sc/source/ui/pagedlg/areasdlg.cxx
+++ b/sc/source/ui/pagedlg/areasdlg.cxx
@@ -99,7 +99,7 @@ ScPrintAreasDlg::ScPrintAreasDlg(SfxBindings* pB, 
SfxChildWindow* pCW, weld::Win
     , bDlgLostFocus(false)
     , rViewData(rData)
     , rDoc(rViewData.GetDocument())
-    , nCurTab(rViewData.GetTabNo())
+    , nCurTab(rViewData.CurrentTabForData())
     , m_xLbPrintArea(m_xBuilder->weld_combo_box(u"lbprintarea"_ustr))
     , m_xEdPrintArea(new 
formula::RefEdit(m_xBuilder->weld_entry(u"edprintarea"_ustr)))
     , m_xRbPrintArea(new 
formula::RefButton(m_xBuilder->weld_button(u"rbprintarea"_ustr)))
diff --git a/sc/source/ui/pagedlg/tphf.cxx b/sc/source/ui/pagedlg/tphf.cxx
index b6421f2b948e..b4dad51ccfc1 100644
--- a/sc/source/ui/pagedlg/tphf.cxx
+++ b/sc/source/ui/pagedlg/tphf.cxx
@@ -60,7 +60,7 @@ ScHFPage::ScHFPage(weld::Container* pPage, 
weld::DialogController* pController,
         ScViewData& rViewData = pViewSh->GetViewData();
         ScDocument& rDoc      = rViewData.GetDocument();
 
-        aStrPageStyle = rDoc.GetPageStyle( rViewData.GetTabNo() );
+        aStrPageStyle = rDoc.GetPageStyle( rViewData.CurrentTabForData() );
     }
 
     m_xBtnEdit->connect_clicked(LINK(this, ScHFPage, BtnHdl));
diff --git a/sc/source/ui/uitest/uiobject.cxx b/sc/source/ui/uitest/uiobject.cxx
index 0148f8f4f52e..f1d1455f8c69 100644
--- a/sc/source/ui/uitest/uiobject.cxx
+++ b/sc/source/ui/uitest/uiobject.cxx
@@ -64,7 +64,7 @@ StringMap ScGridWinUIObject::get_state()
 {
     StringMap aMap = WindowUIObject::get_state();
 
-    aMap[u"SelectedTable"_ustr] = 
OUString::number(mxGridWindow->getViewData().GetTabNo());
+    aMap[u"SelectedTable"_ustr] = 
OUString::number(mxGridWindow->getViewData().CurrentTabForData());
     aMap[u"CurrentColumn"_ustr] = 
OUString::number(mxGridWindow->getViewData().GetCurX());
     aMap[u"CurrentRow"_ustr] = 
OUString::number(mxGridWindow->getViewData().GetCurY());
 
@@ -81,7 +81,7 @@ StringMap ScGridWinUIObject::get_state()
     aMap[u"MarkedArea"_ustr] = aMarkedAreaString;
 
     ScDocument& rDoc = mxGridWindow->getViewData().GetDocument();
-    ScAddress aPos( mxGridWindow->getViewData().GetCurX() , 
mxGridWindow->getViewData().GetCurY() , mxGridWindow->getViewData().GetTabNo() 
);
+    ScAddress aPos( mxGridWindow->getViewData().GetCurX() , 
mxGridWindow->getViewData().GetCurY() , 
mxGridWindow->getViewData().CurrentTabForData() );
     if ( rDoc.HasNote( aPos ) )
     {
         ScPostIt* pNote = rDoc.GetNote(aPos);
@@ -91,13 +91,13 @@ StringMap ScGridWinUIObject::get_state()
 
     SCCOL nCol;
     SCROW nRow;
-    aMap[u"CurrentTableHasData"_ustr] = OUString::boolean( rDoc.GetDataStart( 
mxGridWindow->getViewData().GetTabNo(), nCol, nRow ) );
+    aMap[u"CurrentTableHasData"_ustr] = OUString::boolean( rDoc.GetDataStart( 
mxGridWindow->getViewData().CurrentTabForData(), nCol, nRow ) );
     nCol = mxGridWindow->getViewData().GetCurX();
     nRow = 0;
-    aMap[u"CurrentColumnHasData"_ustr] = OUString::boolean( 
rDoc.GetPrintAreaVer( mxGridWindow->getViewData().GetTabNo(), nCol, nCol, nRow, 
true ) );
+    aMap[u"CurrentColumnHasData"_ustr] = OUString::boolean( 
rDoc.GetPrintAreaVer( mxGridWindow->getViewData().CurrentTabForData(), nCol, 
nCol, nRow, true ) );
     nRow = mxGridWindow->getViewData().GetCurY();
     nCol = 0;
-    aMap[u"CurrentRowHasData"_ustr] = OUString::boolean( rDoc.GetPrintAreaHor( 
mxGridWindow->getViewData().GetTabNo(), nRow, nRow, nCol ) );
+    aMap[u"CurrentRowHasData"_ustr] = OUString::boolean( rDoc.GetPrintAreaHor( 
mxGridWindow->getViewData().CurrentTabForData(), nRow, nRow, nCol ) );
 
     ScAppOptions aOpt = ScModule::get()->GetAppOptions();
     aMap[u"Zoom"_ustr] = OUString::number( aOpt.GetZoom() );
@@ -309,7 +309,7 @@ void ScGridWinUIObject::execute(const OUString& rAction,
             auto itr = rParameters.find(u"SETTEXT"_ustr);
             const OUString rStr = itr->second;
             ScDocument& rDoc = mxGridWindow->getViewData().GetDocument();
-            ScAddress aPos( mxGridWindow->getViewData().GetCurX() , 
mxGridWindow->getViewData().GetCurY() , mxGridWindow->getViewData().GetTabNo() 
);
+            ScAddress aPos( mxGridWindow->getViewData().GetCurX() , 
mxGridWindow->getViewData().GetCurY() , 
mxGridWindow->getViewData().CurrentTabForData() );
             rDoc.GetOrCreateNote( aPos )->SetText( aPos , rStr );
         }
     }
@@ -370,7 +370,7 @@ SdrPage* get_draw_page(VclPtr<ScGridWindow> const & 
xGridWindow, SCTAB nTab)
 
 std::set<OUString> collect_charts(VclPtr<ScGridWindow> const & xGridWindow)
 {
-    SCTAB nTab = xGridWindow->getViewData().GetTabNo();
+    SCTAB nTab = xGridWindow->getViewData().CurrentTabForData();
     SdrPage* pPage = get_draw_page(xGridWindow, nTab);
 
     std::set<OUString> aRet;
diff --git a/sc/source/ui/undo/undobase.cxx b/sc/source/ui/undo/undobase.cxx
index 799699831d54..cdc2522c583a 100644
--- a/sc/source/ui/undo/undobase.cxx
+++ b/sc/source/ui/undo/undobase.cxx
@@ -235,7 +235,7 @@ void ScSimpleUndo::ShowTable( const ScRange& rRange )
     {
         SCTAB nStart = rRange.aStart.Tab();
         SCTAB nEnd   = rRange.aEnd.Tab();
-        SCTAB nTab = pViewShell->GetViewData().GetTabNo();
+        SCTAB nTab = pViewShell->GetViewData().CurrentTabForData();
         if ( nTab < nStart || nTab > nEnd )                     // if not in 
range:
             pViewShell->SetTabNo( nStart );                     // at 
beginning of the range
     }
@@ -346,7 +346,7 @@ void ScBlockUndo::ShowBlock()
     ShowTable( aBlockRange );       // with multiple sheets in range each of 
them is good
     pViewShell->MoveCursorAbs( aBlockRange.aStart.Col(), 
aBlockRange.aStart.Row(),
                                SC_FOLLOW_JUMP, false, false );
-    SCTAB nTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nTab = pViewShell->GetViewData().CurrentTabForData();
     ScRange aRange = aBlockRange;
     aRange.aStart.SetTab( nTab );
     aRange.aEnd.SetTab( nTab );
@@ -406,7 +406,7 @@ void ScMultiBlockUndo::ShowBlock()
     ShowTable(aRange);
     pViewShell->MoveCursorAbs(
         aRange.aStart.Col(), aRange.aStart.Row(), SC_FOLLOW_JUMP, false, 
false);
-    SCTAB nTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nTab = pViewShell->GetViewData().CurrentTabForData();
     aRange.aStart.SetTab(nTab);
     aRange.aEnd.SetTab(nTab);
     pViewShell->MarkRange(aRange, false);
diff --git a/sc/source/ui/undo/undoblk.cxx b/sc/source/ui/undo/undoblk.cxx
index 52154dcb1029..4acc9437cf5d 100644
--- a/sc/source/ui/undo/undoblk.cxx
+++ b/sc/source/ui/undo/undoblk.cxx
@@ -273,7 +273,7 @@ void ScUndoInsertCells::DoChange( const bool bUndo )
     if (!comphelper::LibreOfficeKit::isActive())
         return;
 
-    SCTAB nTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nTab = pViewShell->GetViewData().CurrentTabForData();
     bool bColsAffected = (eCmd == INS_INSCOLS_BEFORE || eCmd == 
INS_INSCOLS_AFTER || eCmd == INS_CELLSRIGHT);
     bool bRowsAffected = (eCmd == INS_INSROWS_BEFORE || eCmd == 
INS_INSROWS_AFTER || eCmd == INS_CELLSDOWN);
 
@@ -544,7 +544,7 @@ void ScUndoDeleteCells::DoChange( const bool bUndo )
     if (!comphelper::LibreOfficeKit::isActive())
         return;
 
-    SCTAB nTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nTab = pViewShell->GetViewData().CurrentTabForData();
     bool bColsAffected = (eCmd == DelCellCmd::Cols || eCmd == 
DelCellCmd::CellsLeft);
     bool bRowsAffected = (eCmd == DelCellCmd::Rows || eCmd == 
DelCellCmd::CellsUp);
 
@@ -1866,7 +1866,7 @@ bool ScUndoUseScenario::CanRepeat(SfxRepeatTarget& 
rTarget) const
     if (auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
     {
         ScViewData& rViewData = pViewTarget->GetViewShell().GetViewData();
-        return !rViewData.GetDocument().IsScenario( rViewData.GetTabNo() );
+        return !rViewData.GetDocument().IsScenario( 
rViewData.CurrentTabForData() );
     }
     return false;
 }
diff --git a/sc/source/ui/undo/undoblk2.cxx b/sc/source/ui/undo/undoblk2.cxx
index 28b20667fef1..da66f1045909 100644
--- a/sc/source/ui/undo/undoblk2.cxx
+++ b/sc/source/ui/undo/undoblk2.cxx
@@ -125,7 +125,7 @@ void ScUndoWidthOrHeight::Undo()
 
     if (pViewShell)
     {
-        SCTAB nCurrentTab = pViewShell->GetViewData().GetTabNo();
+        SCTAB nCurrentTab = pViewShell->GetViewData().CurrentTabForData();
         bool bAffectsVisibility = (eMode != SC_SIZE_ORIGINAL && eMode != 
SC_SIZE_VISOPT);
         ScTabViewShell::notifyAllViewsSheetGeomInvalidation(
                 pViewShell, bWidth /* bColumns */, !bWidth /* bRows */,
@@ -156,7 +156,7 @@ void ScUndoWidthOrHeight::Redo()
     ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
     if (pViewShell)
     {
-        SCTAB nTab = pViewShell->GetViewData().GetTabNo();
+        SCTAB nTab = pViewShell->GetViewData().CurrentTabForData();
         if ( nTab < nStartTab || nTab > nEndTab )
             pViewShell->SetTabNo( nStartTab );
 
diff --git a/sc/source/ui/undo/undoblk3.cxx b/sc/source/ui/undo/undoblk3.cxx
index a8944a993851..43c6f8a6f4cd 100644
--- a/sc/source/ui/undo/undoblk3.cxx
+++ b/sc/source/ui/undo/undoblk3.cxx
@@ -306,7 +306,7 @@ void ScUndoFillTable::DoChange( const bool bUndo )
     ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
     if (pViewShell)
     {
-        SCTAB nTab = pViewShell->GetViewData().GetTabNo();
+        SCTAB nTab = pViewShell->GetViewData().CurrentTabForData();
         if ( !aMarkData.GetTableSelect(nTab) )
             pViewShell->SetTabNo( nSrcTab );
 
diff --git a/sc/source/ui/undo/undocell.cxx b/sc/source/ui/undo/undocell.cxx
index 724da8cd5676..c55d5b6b5a54 100644
--- a/sc/source/ui/undo/undocell.cxx
+++ b/sc/source/ui/undo/undocell.cxx
@@ -632,7 +632,7 @@ void ScUndoPrintZoom::Repeat(SfxRepeatTarget& rTarget)
     {
         ScTabViewShell& rViewShell = pViewTarget->GetViewShell();
         ScViewData& rViewData = rViewShell.GetViewData();
-        rViewData.GetDocShell().SetPrintZoom( rViewData.GetTabNo(), nNewScale, 
nNewPages );
+        rViewData.GetDocShell().SetPrintZoom( rViewData.CurrentTabForData(), 
nNewScale, nNewPages );
     }
 }
 
diff --git a/sc/source/ui/undo/undodat.cxx b/sc/source/ui/undo/undodat.cxx
index 8b9ff7a4a814..f66c59b10135 100644
--- a/sc/source/ui/undo/undodat.cxx
+++ b/sc/source/ui/undo/undodat.cxx
@@ -87,7 +87,7 @@ void ScUndoDoOutline::Undo()
 
     // sheet has to be switched over (#46952#)!
 
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -125,7 +125,7 @@ void ScUndoDoOutline::Redo()
 
     // sheet has to be switched over (#46952#)!
 
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -186,7 +186,7 @@ void ScUndoMakeOutline::Undo()
 
     rDoc.SetOutlineTable( nTab, pUndoTable.get() );
 
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -291,7 +291,7 @@ void ScUndoOutlineLevel::Undo()
             true /* bGroups */, nTab);
     pViewShell->UpdateScrollBars();
 
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -310,7 +310,7 @@ void ScUndoOutlineLevel::Redo()
 
     // sheet has to be switched on or off before this (#46952#) !!!
 
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -391,7 +391,7 @@ void ScUndoOutlineBlock::Undo()
             true /* bGroups */, nTab);
     pViewShell->UpdateScrollBars();
 
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -483,7 +483,7 @@ void ScUndoRemoveAllOutlines::Undo()
 
     pViewShell->UpdateScrollBars();
 
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -510,7 +510,7 @@ void ScUndoRemoveAllOutlines::Redo()
     // sheet has to be switched over (#46952#)!
 
     SCTAB nTab = aBlockStart.Tab();
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -579,7 +579,7 @@ void ScUndoAutoOutline::Undo()
         pViewShell->UpdateScrollBars();
     }
 
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -599,7 +599,7 @@ void ScUndoAutoOutline::Redo()
     SCTAB nTab = aBlockStart.Tab();
     // sheet has to be switched on or off before this (#46952#) !!!
 
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -709,7 +709,7 @@ void ScUndoSubTotals::Undo()
     if (xUndoDB)
         rDoc.SetDBCollection(std::unique_ptr<ScDBCollection>(new 
ScDBCollection(*xUndoDB)), true);
 
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -727,7 +727,7 @@ void ScUndoSubTotals::Redo()
 
     BeginRedo();
 
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -863,7 +863,7 @@ void ScUndoQuery::Undo()
 
     DoSdrUndoAction( pDrawUndo.get(), &rDoc );
 
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -911,7 +911,7 @@ void ScUndoQuery::Redo()
 
     BeginRedo();
 
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -1174,7 +1174,7 @@ void ScUndoImportData::Undo()
         ScUndoUtil::MarkSimpleBlock( rDocShell, nCol1, nRow1, nTable, nCol2, 
nRow2, nTable );
     }
 
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -1246,7 +1246,7 @@ void ScUndoImportData::Redo()
         ScUndoUtil::MarkSimpleBlock( rDocShell, nCol1, nRow1, nTable, nCol2, 
nRow2, nTable );
     }
 
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -1411,7 +1411,7 @@ void ScUndoRepeatDB::Undo()
             false /* bSizes*/, true /* bHidden */, true /* bFiltered */,
             false /* bGroups */, nTab);
 
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -1431,7 +1431,7 @@ void ScUndoRepeatDB::Redo()
 
     SCTAB nTab = aBlockStart.Tab();
 
-    SCTAB nVisTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nVisTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nVisTab != nTab )
         pViewShell->SetTabNo( nTab );
 
@@ -1689,7 +1689,7 @@ void ScUndoConsolidate::Undo()
     ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
     if (pViewShell)
     {
-        SCTAB nViewTab = pViewShell->GetViewData().GetTabNo();
+        SCTAB nViewTab = pViewShell->GetViewData().CurrentTabForData();
         if ( nViewTab != nTab )
             pViewShell->SetTabNo( nTab );
     }
@@ -1706,7 +1706,7 @@ void ScUndoConsolidate::Redo()
     ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
     if (pViewShell)
     {
-        SCTAB nViewTab = pViewShell->GetViewData().GetTabNo();
+        SCTAB nViewTab = pViewShell->GetViewData().CurrentTabForData();
         if ( nViewTab != aParam.nTab )
             pViewShell->SetTabNo( aParam.nTab );
     }
diff --git a/sc/source/ui/undo/undotab.cxx b/sc/source/ui/undo/undotab.cxx
index b68735b0b2dc..c8d3db940599 100644
--- a/sc/source/ui/undo/undotab.cxx
+++ b/sc/source/ui/undo/undotab.cxx
@@ -504,7 +504,7 @@ void ScUndoDeleteTab::Repeat(SfxRepeatTarget& rTarget)
     if (auto pViewTarget = dynamic_cast<ScTabViewTarget*>( &rTarget))
     {
         ScTabViewShell& rViewShell = pViewTarget->GetViewShell();
-        rViewShell.DeleteTable( rViewShell.GetViewData().GetTabNo() );
+        rViewShell.DeleteTable( rViewShell.GetViewData().CurrentTabForData() );
     }
 }
 
diff --git a/sc/source/ui/undo/undoutil.cxx b/sc/source/ui/undo/undoutil.cxx
index b0b50bc1f661..f935054cbe0c 100644
--- a/sc/source/ui/undo/undoutil.cxx
+++ b/sc/source/ui/undo/undoutil.cxx
@@ -39,7 +39,7 @@ void ScUndoUtil::MarkSimpleBlock( const ScDocShell& rDocShell,
     if (!pViewShell)
         return;
 
-    SCTAB nViewTab = pViewShell->GetViewData().GetTabNo();
+    SCTAB nViewTab = pViewShell->GetViewData().CurrentTabForData();
     if ( nViewTab < nStartZ || nViewTab > nEndZ )
         pViewShell->SetTabNo( nStartZ );
 
diff --git a/sc/source/ui/unoobj/dispuno.cxx b/sc/source/ui/unoobj/dispuno.cxx
index 92ce0ca562a4..eb52ab1ca59c 100644
--- a/sc/source/ui/unoobj/dispuno.cxx
+++ b/sc/source/ui/unoobj/dispuno.cxx
@@ -209,7 +209,7 @@ void SAL_CALL ScDispatch::dispatch( const util::URL& aURL,
     if ( pViewShell && aURL.Complete == cURLInsertColumns )
     {
         ScViewData& rViewData = pViewShell->GetViewData();
-        ScAddress aPos( rViewData.GetCurX(), rViewData.GetCurY(), 
rViewData.GetTabNo() );
+        ScAddress aPos( rViewData.GetCurX(), rViewData.GetCurY(), 
rViewData.CurrentTabForData() );
 
         ScDBDocFunc aFunc( rViewData.GetDocShell() );
         aFunc.DoImportUno( aPos, aArgs );
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index 4f376e9d7041..334b46f50f65 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -545,7 +545,7 @@ static ScViewData* lcl_getViewMatchingDocZoomTab(const 
Fraction& rZoomX,
             continue;
 
         ScViewData& rData = pTabViewShell->GetViewData();
-        if (rData.GetTabNo() == nTab && rData.GetZoomX() == rZoomX && 
rData.GetZoomY() == rZoomY &&
+        if (rData.CurrentTabForData() == nTab && rData.GetZoomX() == rZoomX && 
rData.GetZoomY() == rZoomY &&
             getTabViewRenderState(*pTabViewShell) == rViewRenderState)
         {
             return &rData;
@@ -574,7 +574,7 @@ void ScModelObj::paintTile( VirtualDevice& rDevice,
     // first few shells. This is to avoid switching of zooms in 
ScGridWindow::PaintTile
     // and hence avoid grid-offset recomputation on all shapes which is not 
cheap.
     ScViewData* pViewData = lcl_getViewMatchingDocZoomTab(aFracX, aFracY,
-            pActiveViewData->GetTabNo(), pViewShell->GetDocId(),
+            pActiveViewData->CurrentTabForData(), pViewShell->GetDocId(),
             getTabViewRenderState(*pViewShell));
     if (!pViewData)
         pViewData = pActiveViewData;
@@ -605,7 +605,7 @@ void ScModelObj::paintTile( VirtualDevice& rDevice,
 
     // Draw Form controls
     ScDrawLayer* pDrawLayer = pDocShell->GetDocument().GetDrawLayer();
-    SdrPage* pPage = pDrawLayer->GetPage(sal_uInt16(pViewData->GetTabNo()));
+    SdrPage* pPage = 
pDrawLayer->GetPage(sal_uInt16(pViewData->CurrentTabForData()));
     SdrView* pDrawView = pViewData->GetViewShell()->GetScDrawView();
     tools::Rectangle aTileRect(Point(nTilePosX, nTilePosY), Size(nTileWidth, 
nTileHeight));
     Size aOutputSize(nOutputWidth, nOutputHeight);
@@ -726,7 +726,7 @@ Size ScModelObj::getDocumentSize(SCCOL& 
rnTiledRenderingAreaEndCol, SCROW& rnTil
     if (!pViewData)
         return aSize;
 
-    SCTAB nTab = pViewData->GetTabNo();
+    SCTAB nTab = pViewData->CurrentTabForData();
     rnTiledRenderingAreaEndCol = 0;
     rnTiledRenderingAreaEndRow = 0;
     const ScDocument& rDoc = pDocShell->GetDocument();
@@ -807,7 +807,7 @@ void ScModelObj::postMouseEvent(int nType, int nX, int nY, 
int nCount, int nButt
     if (!pGridWindow)
         return;
 
-    SCTAB nTab = pViewData->GetTabNo();
+    SCTAB nTab = pViewData->CurrentTabForData();
     const ScDocument& rDoc = pDocShell->GetDocument();
     bool bDrawNegativeX = rDoc.IsNegativePage(nTab);
     if (SfxLokHelper::testInPlaceComponentMouseEventHit(pViewShell, nType, nX, 
nY, nCount,
diff --git a/sc/source/ui/unoobj/viewuno.cxx b/sc/source/ui/unoobj/viewuno.cxx
index 300a554e25ba..d2dfaa4a044e 100644
--- a/sc/source/ui/unoobj/viewuno.cxx
+++ b/sc/source/ui/unoobj/viewuno.cxx
@@ -270,7 +270,7 @@ table::CellRangeAddress SAL_CALL 
ScViewPaneBase::getVisibleRange()
         SCROW nVisY = rViewData.VisibleCellsY( eWhichV );
         if (!nVisX) nVisX = 1;  // there has to be something in the range
         if (!nVisY) nVisY = 1;
-        aAdr.Sheet       = rViewData.GetTabNo();
+        aAdr.Sheet       = rViewData.CurrentTabForData();
         aAdr.StartColumn = rViewData.GetPosX( eWhichH );
         aAdr.StartRow    = rViewData.GetPosY( eWhichV );
         aAdr.EndColumn   = aAdr.StartColumn + nVisX - 1;
@@ -397,7 +397,7 @@ awt::Rectangle ScViewPaneBase::GetVisArea() const
                                     SC_SPLIT_TOP : SC_SPLIT_BOTTOM;
             ScAddress aCell(pViewShell->GetViewData().GetPosX(eWhichH),
                 pViewShell->GetViewData().GetPosY(eWhichV),
-                pViewShell->GetViewData().GetTabNo());
+                pViewShell->GetViewData().CurrentTabForData());
             tools::Rectangle aCellRect( rDoc.GetMMRect( aCell.Col(), 
aCell.Row(), aCell.Col(), aCell.Row(), aCell.Tab() ) );
             Size aVisSize( pWindow->PixelToLogic( pWindow->GetSizePixel(), 
pWindow->GetDrawMapMode( true ) ) );
             Point aVisPos( aCellRect.TopLeft() );
@@ -456,7 +456,7 @@ ScTabViewObj::ScTabViewObj( ScTabViewShell* pViewSh ) :
     mbLeftMousePressed(false)
 {
     if (pViewSh)
-        nPreviousTab = pViewSh->GetViewData().GetTabNo();
+        nPreviousTab = pViewSh->GetViewData().CurrentTabForData();
 }
 
 ScTabViewObj::~ScTabViewObj()
@@ -557,7 +557,7 @@ void ScTabViewObj::SheetChanged( bool bSameTabButMoved )
         sheet::ActivationEvent aEvent;
         uno::Reference< sheet::XSpreadsheetView > xView(this);
         aEvent.Source.set(xView, uno::UNO_QUERY);
-        aEvent.ActiveSheet = new ScTableSheetObj(&rDocSh, 
rViewData.GetTabNo());
+        aEvent.ActiveSheet = new ScTableSheetObj(&rDocSh, 
rViewData.CurrentTabForData());
         // Listener's handler may remove it from the listeners list
         for (size_t i = aActivationListeners.size(); i > 0; --i)
         {
@@ -574,7 +574,7 @@ void ScTabViewObj::SheetChanged( bool bSameTabButMoved )
 
     /*  Handle sheet events, but do not trigger event handlers, if the old
         active sheet gets re-activated after inserting/deleting/moving a 
sheet. */
-    SCTAB nNewTab = rViewData.GetTabNo();
+    SCTAB nNewTab = rViewData.CurrentTabForData();
     if ( !bSameTabButMoved && (nNewTab != nPreviousTab) )
     {
         lcl_CallActivate( rDocSh, nPreviousTab, ScSheetEventId::UNFOCUS );
@@ -736,7 +736,7 @@ sal_Bool SAL_CALL ScTabViewObj::select( const uno::Any& 
aSelection )
                 // multiselection
 
                 const ScRange & rFirst = rRanges[ 0 ];
-                if ( !lcl_TabInRanges( rViewData.GetTabNo(), rRanges ) )
+                if ( !lcl_TabInRanges( rViewData.CurrentTabForData(), rRanges 
) )
                     pViewSh->SetTabNo( rFirst.aStart.Tab() );
                 pViewSh->DoneBlockMode();
                 pViewSh->InitOwnBlockMode( rFirst );    /* TODO: or even the 
overall range? */
@@ -1088,7 +1088,7 @@ uno::Reference<sheet::XSpreadsheet> SAL_CALL 
ScTabViewObj::getActiveSheet()
     if (pViewSh)
     {
         ScViewData& rViewData = pViewSh->GetViewData();
-        SCTAB nTab = rViewData.GetTabNo();
+        SCTAB nTab = rViewData.CurrentTabForData();
         return new ScTableSheetObj( &rViewData.GetDocShell(), nTab );
     }
     return nullptr;
@@ -1128,7 +1128,7 @@ uno::Reference< uno::XInterface > 
ScTabViewObj::GetClickedObject(const Point& rP
         SCROW nY;
         ScViewData& rData = GetViewShell()->GetViewData();
         ScSplitPos eSplitMode = rData.GetActivePart();
-        SCTAB nTab(rData.GetTabNo());
+        SCTAB nTab(rData.CurrentTabForData());
         rData.GetPosFromPixel( rPoint.X(), rPoint.Y(), eSplitMode, nX, nY);
 
         ScAddress aCellPos (nX, nY, nTab);
@@ -1174,7 +1174,7 @@ bool ScTabViewObj::IsMouseListening() const
     // also include sheet events, because MousePressed must be called for them
     ScViewData& rViewData = GetViewShell()->GetViewData();
     ScDocument& rDoc = rViewData.GetDocument();
-    SCTAB nTab = rViewData.GetTabNo();
+    SCTAB nTab = rViewData.CurrentTabForData();
     return
         rDoc.HasSheetEventScript( nTab, ScSheetEventId::RIGHTCLICK, true ) ||
         rDoc.HasSheetEventScript( nTab, ScSheetEventId::DOUBLECLICK, true ) ||
@@ -1227,7 +1227,7 @@ bool ScTabViewObj::MousePressed( const awt::MouseEvent& e 
)
         ScViewData& rViewData = pViewSh->GetViewData();
         ScDocShell& rDocSh = rViewData.GetDocShell();
         ScDocument& rDoc = rDocSh.GetDocument();
-        SCTAB nTab = rViewData.GetTabNo();
+        SCTAB nTab = rViewData.CurrentTabForData();
         const ScSheetEvents* pEvents = rDoc.GetSheetEvents(nTab);
         if (pEvents)
         {
@@ -1702,7 +1702,7 @@ void ScTabViewObj::SelectionChanged()
     ScViewData& rViewData = pViewSh->GetViewData();
     ScDocShell& rDocSh = rViewData.GetDocShell();
     ScDocument& rDoc = rDocSh.GetDocument();
-    SCTAB nTab = rViewData.GetTabNo();
+    SCTAB nTab = rViewData.CurrentTabForData();
     const ScSheetEvents* pEvents = rDoc.GetSheetEvents(nTab);
     if (pEvents)
     {
@@ -2198,7 +2198,7 @@ uno::Sequence<sal_Int32> ScTabViewObj::getSelectedSheets()
     if (pExtOpt && pExtOpt->IsChanged())
     {
         pViewSh->GetViewData().ReadExtOptions(*pExtOpt);        // Excel view 
settings
-        pViewSh->SetTabNo(pViewSh->GetViewData().GetTabNo(), true);
+        pViewSh->SetTabNo(pViewSh->GetViewData().CurrentTabForData(), true);
         pExtOpt->SetChanged(false);
     }
 
diff --git a/sc/source/ui/view/cellsh.cxx b/sc/source/ui/view/cellsh.cxx
index 3f0ffb986286..1318a71aab95 100644
--- a/sc/source/ui/view/cellsh.cxx
+++ b/sc/source/ui/view/cellsh.cxx
@@ -114,7 +114,7 @@ void ScCellShell::GetBlockState( SfxItemSet& rSet )
     nRow1 = aMarkRange.aStart.Row();
     nCol2 = aMarkRange.aEnd.Col();
     nRow2 = aMarkRange.aEnd.Row();
-    SCTAB nTab = GetViewData().GetTabNo();
+    SCTAB nTab = GetViewData().CurrentTabForData();
 
     SfxWhichIter aIter(rSet);
     sal_uInt16 nWhich = aIter.FirstWhich();
@@ -362,7 +362,7 @@ void ScCellShell::GetCellState( SfxItemSet& rSet )
     ScDocShell& rDocShell = GetViewData().GetDocShell();
     ScDocument& rDoc = GetViewData().GetDocShell().GetDocument();
     ScAddress aCursor( GetViewData().GetCurX(), GetViewData().GetCurY(),
-                        GetViewData().GetTabNo() );
+                        GetViewData().CurrentTabForData() );
     SfxWhichIter aIter(rSet);
     sal_uInt16 nWhich = aIter.FirstWhich();
     while ( nWhich )
@@ -402,7 +402,7 @@ void ScCellShell::GetCellState( SfxItemSet& rSet )
                 break;
             case SID_INSERT_POSTIT:
                 {
-                    ScAddress aPos( GetViewData().GetCurX(), 
GetViewData().GetCurY(), GetViewData().GetTabNo() );
+                    ScAddress aPos( GetViewData().GetCurX(), 
GetViewData().GetCurY(), GetViewData().CurrentTabForData() );
                     if( rDoc.GetNote(aPos) )
                     {
                         bDisable = true;
@@ -419,7 +419,7 @@ void ScCellShell::GetCellState( SfxItemSet& rSet )
                 break;
             case SID_EDIT_POSTIT:
                 {
-                    ScAddress aPos( GetViewData().GetCurX(), 
GetViewData().GetCurY(), GetViewData().GetTabNo() );
+                    ScAddress aPos( GetViewData().GetCurX(), 
GetViewData().GetCurY(), GetViewData().CurrentTabForData() );
                     bDisable = rDoc.GetNote(aPos) == nullptr;
                 }
                 break;
@@ -635,7 +635,7 @@ void ScCellShell::GetClipState( SfxItemSet& rSet )
     {
         SCCOL nCol = GetViewData().GetCurX();
         SCROW nRow = GetViewData().GetCurY();
-        SCTAB nTab = GetViewData().GetTabNo();
+        SCTAB nTab = GetViewData().CurrentTabForData();
         ScDocument& rDoc = GetViewData().GetDocShell().GetDocument();
         if (!rDoc.IsBlockEditable( nTab, nCol,nRow, nCol,nRow ))
             bDisable = true;
@@ -686,7 +686,7 @@ void ScCellShell::GetHLinkState( SfxItemSet& rSet )
         ScDocument& rDoc        = rData.GetDocument();
         SCCOL       nPosX       = rData.GetCurX();
         SCROW       nPosY       = rData.GetCurY();
-        SCTAB       nTab        = rData.GetTabNo();
+        SCTAB       nTab        = rData.CurrentTabForData();
         aHLinkItem.SetName(rDoc.GetString(nPosX, nPosY, nTab));
     }
 
@@ -702,7 +702,7 @@ void ScCellShell::GetState(SfxItemSet &rSet)
     ScMarkData& rMark       = rData.GetMarkData();
     SCCOL       nPosX       = rData.GetCurX();
     SCROW       nPosY       = rData.GetCurY();
-    SCTAB       nTab        = rData.GetTabNo();
+    SCTAB       nTab        = rData.CurrentTabForData();
 
     SCTAB nTabCount = rDoc.GetTableCount();
     SCTAB nTabSelCount = rMark.GetSelectCount();
@@ -1037,7 +1037,7 @@ void ScCellShell::GetState(SfxItemSet &rSet)
             case SID_OUTLINE_MAKE:
                 {
                     if ( GetViewData().GetDocument().GetDPAtCursor( 
GetViewData().GetCurX(),
-                                            GetViewData().GetCurY(), 
GetViewData().GetTabNo() ) )
+                                            GetViewData().GetCurY(), 
GetViewData().CurrentTabForData() ) )
                     {
                         //! test for data pilot operation
                     }
@@ -1049,7 +1049,7 @@ void ScCellShell::GetState(SfxItemSet &rSet)
                 break;
             case SID_OUTLINE_SHOW:
                 if ( GetViewData().GetDocument().GetDPAtCursor( 
GetViewData().GetCurX(),
-                                        GetViewData().GetCurY(), 
GetViewData().GetTabNo() ) )
+                                        GetViewData().GetCurY(), 
GetViewData().CurrentTabForData() ) )
                 {
                     //! test for data pilot operation
                 }
@@ -1059,7 +1059,7 @@ void ScCellShell::GetState(SfxItemSet &rSet)
 
             case SID_OUTLINE_HIDE:
                 if ( GetViewData().GetDocument().GetDPAtCursor( 
GetViewData().GetCurX(),
-                                        GetViewData().GetCurY(), 
GetViewData().GetTabNo() ) )
+                                        GetViewData().GetCurY(), 
GetViewData().CurrentTabForData() ) )
                 {
                     //! test for data pilot operation
                 }
@@ -1070,7 +1070,7 @@ void ScCellShell::GetState(SfxItemSet &rSet)
             case SID_OUTLINE_REMOVE:
                 {
                     if ( GetViewData().GetDocument().GetDPAtCursor( 
GetViewData().GetCurX(),
-                                            GetViewData().GetCurY(), 
GetViewData().GetTabNo() ) )
+                                            GetViewData().GetCurY(), 
GetViewData().CurrentTabForData() ) )
                     {
                         //! test for data pilot operation
                     }
@@ -1288,7 +1288,7 @@ void ScCellShell::GetState(SfxItemSet &rSet)
 
             case SID_SPELL_DIALOG:
                 {
-                    if (rDoc.IsTabProtected(rData.GetTabNo()))
+                    if (rDoc.IsTabProtected(rData.CurrentTabForData()))
                     {
                         bool bVisible = false;
                         SfxViewFrame* pViewFrame = ( pTabViewShell ? 
&pTabViewShell->GetViewFrame() : nullptr );
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index c4ae21ee42f7..6c922d7753e1 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -492,7 +492,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
 
                         ScopedVclPtr<AbstractScDeleteContentsDlg> 
pDlg(pFact->CreateScDeleteContentsDlg(pTabViewShell->GetFrameWeld()));
                         ScDocument& rDoc = GetViewData().GetDocument();
-                        SCTAB nTab = GetViewData().GetTabNo();
+                        SCTAB nTab = GetViewData().CurrentTabForData();
                         if ( rDoc.IsTabProtected(nTab) )
                             pDlg->DisableObjects();
                         if (pDlg->Execute() == RET_OK)
@@ -933,7 +933,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                         SCROW nMergeRow = nStartRow;
                         if ( GetViewData().GetDocument().ExtendMerge(
                                 nStartCol, nStartRow, nMergeCol, nMergeRow,
-                                GetViewData().GetTabNo() ) )
+                                GetViewData().CurrentTabForData() ) )
                         {
                             if ( nFillCol >= nStartCol && nFillCol <= 
nMergeCol && nFillRow == nStartRow )
                                 nFillCol = nStartCol;
@@ -1191,7 +1191,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                 std::shared_ptr<sc::SparklineGroup> pSparklineGroup;
                 if 
(GetViewData().GetDocument().GetSparklineGroupInRange(aMarkRange, 
pSparklineGroup) && pSparklineGroup)
                 {
-                    
GetViewData().GetDocShell().GetDocFunc().DeleteSparklineGroup(pSparklineGroup, 
GetViewData().GetTabNo());
+                    
GetViewData().GetDocShell().GetDocFunc().DeleteSparklineGroup(pSparklineGroup, 
GetViewData().CurrentTabForData());
                 }
             }
             rReq.Done();
@@ -1203,7 +1203,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
             ScRange aRange;
             if (GetViewData().GetSimpleArea(aRange) == SC_MARK_SIMPLE)
             {
-                ScAddress aCursorAddress(GetViewData().GetCurX(), 
GetViewData().GetCurY(), GetViewData().GetTabNo());
+                ScAddress aCursorAddress(GetViewData().GetCurX(), 
GetViewData().GetCurY(), GetViewData().CurrentTabForData());
                 auto pSparkline = 
GetViewData().GetDocument().GetSparkline(aCursorAddress);
                 if (pSparkline)
                 {
@@ -1231,7 +1231,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
 
         case SID_OUTLINE_HIDE:
             if ( GetViewData().GetDocument().GetDPAtCursor( 
GetViewData().GetCurX(),
-                                    GetViewData().GetCurY(), 
GetViewData().GetTabNo() ) )
+                                    GetViewData().GetCurY(), 
GetViewData().CurrentTabForData() ) )
                 pTabViewShell->SetDataPilotDetails( false );
             else
                 pTabViewShell->HideMarkedOutlines();
@@ -1241,7 +1241,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
         case SID_OUTLINE_SHOW:
             {
                 ScDPObject* pDPObj = 
GetViewData().GetDocument().GetDPAtCursor( GetViewData().GetCurX(),
-                                    GetViewData().GetCurY(), 
GetViewData().GetTabNo() );
+                                    GetViewData().GetCurY(), 
GetViewData().CurrentTabForData() );
                 if ( pDPObj )
                 {
                     Sequence<sheet::DataPilotFieldFilter> aFilters;
@@ -1259,7 +1259,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                     }
                     else if ( !pDPObj->IsServiceData() &&
                                pDPObj->GetDataFieldPositionData(
-                                   ScAddress( GetViewData().GetCurX(), 
GetViewData().GetCurY(), GetViewData().GetTabNo() ),
+                                   ScAddress( GetViewData().GetCurX(), 
GetViewData().GetCurY(), GetViewData().CurrentTabForData() ),
                                    aFilters ) )
                         pTabViewShell->ShowDataPilotSourceData( *pDPObj, 
aFilters );
                     else
@@ -1277,7 +1277,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                 bool bOk = true;
 
                 if ( GetViewData().GetDocument().GetDPAtCursor( 
GetViewData().GetCurX(),
-                                        GetViewData().GetCurY(), 
GetViewData().GetTabNo() ) )
+                                        GetViewData().GetCurY(), 
GetViewData().CurrentTabForData() ) )
                 {
                     ScDPNumGroupInfo aNumInfo;
                     aNumInfo.mbEnable    = true;
@@ -1373,7 +1373,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                 bool bOk = true;
 
                 if ( GetViewData().GetDocument().GetDPAtCursor( 
GetViewData().GetCurX(),
-                                        GetViewData().GetCurY(), 
GetViewData().GetTabNo() ) )
+                                        GetViewData().GetCurY(), 
GetViewData().CurrentTabForData() ) )
                 {
                     pTabViewShell->UngroupDataPilot();
                     bOk = false;
@@ -1576,7 +1576,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                             if (!bOtherDoc)
                             {
                                 ScViewData& rData = GetViewData();
-                                if ( rData.GetMarkData().GetTableSelect( 
rData.GetTabNo() ) )
+                                if ( rData.GetMarkData().GetTableSelect( 
rData.CurrentTabForData() ) )
                                 {
                                     SCCOL nStartX, nEndX, nClipStartX, 
nClipSizeX, nRangeSizeX;
                                     SCROW nStartY, nEndY, nClipStartY, 
nClipSizeY, nRangeSizeY;
@@ -1592,7 +1592,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                                         // assume the destination as the 
current cell
                                         nStartX = nEndX = rData.GetCurX();
                                         nStartY = nEndY = rData.GetCurY();
-                                        nStartTab = rData.GetTabNo();
+                                        nStartTab = rData.CurrentTabForData();
                                     }
                                     // we now have clip- and range dimensions
                                     // the size of the destination area is the 
larger of the two
@@ -1769,7 +1769,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                         nPosX = GetViewData().GetCurX();
                         nPosY = GetViewData().GetCurY();
                     }
-                    ScAddress aCellPos(nPosX, nPosY, GetViewData().GetTabNo());
+                    ScAddress aCellPos(nPosX, nPosY, 
GetViewData().CurrentTabForData());
                     auto pObj = 
std::make_shared<ScImportExport>(GetViewData().GetDocument(), aCellPos);
                     pObj->SetOverwriting(true);
                     if (pDlg->Execute()) {
@@ -2313,13 +2313,13 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                 rData.GetMarkData().FillRangeListWithMarks(&aRangeList, false);
 
                 ScDocument& rDoc = GetViewData().GetDocument();
-                if(rDoc.IsTabProtected(rData.GetTabNo()))
+                if(rDoc.IsTabProtected(rData.CurrentTabForData()))
                 {
                     pTabViewShell->ErrorMessage( STR_ERR_CONDFORMAT_PROTECTED 
);
                     break;
                 }
 
-                ScAddress aPos(rData.GetCurX(), rData.GetCurY(), 
rData.GetTabNo());
+                ScAddress aPos(rData.GetCurX(), rData.GetCurY(), 
rData.CurrentTabForData());
                 if(aRangeList.empty())
                 {
                     aRangeList.push_back(ScRange(aPos));
@@ -2664,7 +2664,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                 const SfxStringItem& rTextItem = pReqArgs->Get( 
SID_RANGE_NOTETEXT );
 
                 //  always cursor position
-                ScAddress aPos( GetViewData().GetCurX(), 
GetViewData().GetCurY(), GetViewData().GetTabNo() );
+                ScAddress aPos( GetViewData().GetCurX(), 
GetViewData().GetCurY(), GetViewData().CurrentTabForData() );
                 pTabViewShell->SetNoteText( aPos, rTextItem.GetValue() );
                 rReq.Done();
             }
@@ -2689,7 +2689,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                         SetTabNoAndCursor( GetViewData(), aCellId );
                     }
 
-                    ScAddress aPos( GetViewData().GetCurX(), 
GetViewData().GetCurY(), GetViewData().GetTabNo() );
+                    ScAddress aPos( GetViewData().GetCurX(), 
GetViewData().GetCurY(), GetViewData().CurrentTabForData() );
                     pTabViewShell->ReplaceNote( aPos, pTextItem->GetValue(),
                                                 pAuthorItem ? 
&pAuthorItem->GetValue() : nullptr,
                                                 pDateItem ? 
&pDateItem->GetValue() : nullptr );
@@ -2705,7 +2705,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
         case FID_NOTE_VISIBLE:
             {
                 ScDocument& rDoc = GetViewData().GetDocument();
-                ScAddress aPos( GetViewData().GetCurX(), 
GetViewData().GetCurY(), GetViewData().GetTabNo() );
+                ScAddress aPos( GetViewData().GetCurX(), 
GetViewData().GetCurY(), GetViewData().CurrentTabForData() );
                 if( ScPostIt* pNote = rDoc.GetNote(aPos) )
                 {
                     bool bShow;
@@ -2739,7 +2739,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                 if (!rMark.IsMarked() && !rMark.IsMultiMarked())
                 {
                     // Check current cell
-                    ScAddress aPos( rData.GetCurX(), rData.GetCurY(), 
rData.GetTabNo() );
+                    ScAddress aPos( rData.GetCurX(), rData.GetCurY(), 
rData.CurrentTabForData() );
                     if( rDoc.GetNote(aPos) )
                     {
                         rData.GetDocShell().GetDocFunc().ShowNote( aPos, 
bShowNote );
@@ -2989,13 +2989,13 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
                 ScViewData& rData = GetViewData();
                 ScDocument& rDoc = rData.GetDocument();
 
-                if (rDoc.IsTabProtected(rData.GetTabNo()))
+                if (rDoc.IsTabProtected(rData.CurrentTabForData()))
                 {
                     pTabViewShell->ErrorMessage( STR_ERR_CONDFORMAT_PROTECTED 
);
                     break;
                 }
 
-                ScAddress aPos(rData.GetCurX(), rData.GetCurY(), 
rData.GetTabNo());
+                ScAddress aPos(rData.GetCurX(), rData.GetCurY(), 
rData.CurrentTabForData());
 
                 ScConditionalFormatList* pList = nullptr;
 
@@ -3188,7 +3188,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
         case SID_SELECT_UNPROTECTED_CELLS:
             {
                 ScViewData& rData = GetViewData();
-                SCTAB aTab = rData.GetTabNo();
+                SCTAB aTab = rData.CurrentTabForData();
                 ScMarkData& rMark = rData.GetMarkData();
                 ScDocument& rDoc = rData.GetDocument();
                 ScRangeList rRangeList;
@@ -3428,7 +3428,7 @@ void ScCellShell::ExecuteExternalSource(
             bMove = true;                       // insert/delete cells to fit 
range
         }
         else
-            aLinkRange = ScRange( rData.GetCurX(), rData.GetCurY(), 
rData.GetTabNo() );
+            aLinkRange = ScRange( rData.GetCurX(), rData.GetCurY(), 
rData.CurrentTabForData() );
 
         rData.GetDocFunc().InsertAreaLink( _rFile, _rFilter, _rOptions, 
_rSource,
                                             aLinkRange, _nRefreshDelaySeconds, 
bMove, false );
@@ -3535,7 +3535,7 @@ void ScCellShell::ExecuteDataPilotDialog()
     // ScPivot is no longer used...
     ScDPObject* pDPObj = rDoc.GetDPAtCursor(
                                 rData.GetCurX(), rData.GetCurY(),
-                                rData.GetTabNo() );
+                                rData.CurrentTabForData() );
     if ( pDPObj )   // on an existing table?
     {
         std::unique_ptr<ScDPObject> pNewDPObject;
@@ -3555,7 +3555,7 @@ void ScCellShell::ExecuteDataPilotDialog()
 
         //  output to cursor position for non-sheet data
         ScAddress aDestPos( rData.GetCurX(), rData.GetCurY(),
-                                rData.GetTabNo() );
+                                rData.CurrentTabForData() );
 
         //  first select type of source data
 
@@ -3754,7 +3754,7 @@ void ScCellShell::ExecuteSubtotals(SfxRequest& rReq)
     pDBData->GetSubTotalParam( aSubTotalParam );
 
     ScDocument& rDoc = GetViewData().GetDocument();
-    SCTAB nTab = GetViewData().GetTabNo();
+    SCTAB nTab = GetViewData().CurrentTabForData();
     if (!rDoc.GetTotalsRowBelow(nTab))
         aSubTotalParam.bSummaryBelow = false;
 
diff --git a/sc/source/ui/view/cellsh2.cxx b/sc/source/ui/view/cellsh2.cxx
index 03eb59fe1430..8ea98aa97635 100644
--- a/sc/source/ui/view/cellsh2.cxx
+++ b/sc/source/ui/view/cellsh2.cxx
@@ -92,7 +92,7 @@ static bool lcl_GetTextToColumnsRange( const ScViewData& 
rData, ScRange& rRange,
     {
         const SCCOL nCol = rData.GetCurX();
         const SCROW nRow = rData.GetCurY();
-        const SCTAB nTab = rData.GetTabNo();
+        const SCTAB nTab = rData.CurrentTabForData();
         rRange = ScRange( nCol, nRow, nTab, nCol, nRow, nTab );
         bRet = true;
     }
@@ -131,7 +131,7 @@ static bool lcl_GetSortParam( const ScViewData& rData, 
const ScSortParam& rSortP
     ScTabViewShell* pTabViewShell   = rData.GetViewShell();
     ScDBData*   pDBData             = pTabViewShell->GetDBData();
     ScDocument& rDoc                = rData.GetDocument();
-    SCTAB nTab                      = rData.GetTabNo();
+    SCTAB nTab                      = rData.CurrentTabForData();
     ScDirection eFillDir            = DIR_TOP;
     bool  bSort                     = true;
     ScRange aExternalRange;
@@ -396,7 +396,7 @@ void ScCellShell::ExecuteDB( SfxRequest& rReq )
                     if( lcl_GetSortParam( rData, aSortParam ) )
                     {
                         SCCOL nCol  = GetViewData().GetCurX();
-                        SCCOL nTab  = GetViewData().GetTabNo();
+                        SCCOL nTab  = GetViewData().CurrentTabForData();
                         ScDocument& rDoc = GetViewData().GetDocument();
 
                         pDBData->GetSortParam( aSortParam );
@@ -451,7 +451,7 @@ void ScCellShell::ExecuteDB( SfxRequest& rReq )
                             ScDocument& rDoc = GetViewData().GetDocument();
 
                             pDBData->GetSortParam( aSortParam );
-                            bool bHasHeader = rDoc.HasColHeader( 
aSortParam.nCol1, aSortParam.nRow1, aSortParam.nCol2, aSortParam.nRow2, 
rData.GetTabNo() );
+                            bool bHasHeader = rDoc.HasColHeader( 
aSortParam.nCol1, aSortParam.nRow1, aSortParam.nCol2, aSortParam.nRow2, 
rData.CurrentTabForData() );
                             if( bHasHeader )
                                 aSortParam.bHasHeader = bHasHeader;
 
@@ -520,7 +520,7 @@ void ScCellShell::ExecuteDB( SfxRequest& rReq )
                             SfxItemSetFixed<SCITEM_SORTDATA, SCITEM_SORTDATA>  
aArgSet( GetPool() );
 
                             pDBData->GetSortParam( aSortParam );
-                            bool bHasHeader = rDoc.HasColHeader( 
aSortParam.nCol1, aSortParam.nRow1, aSortParam.nCol2, aSortParam.nRow2, 
rData.GetTabNo() );
+                            bool bHasHeader = rDoc.HasColHeader( 
aSortParam.nCol1, aSortParam.nRow1, aSortParam.nCol2, aSortParam.nRow2, 
rData.CurrentTabForData() );
                             if( bHasHeader )
                                 aSortParam.bHasHeader = bHasHeader;
 
@@ -650,7 +650,7 @@ void ScCellShell::ExecuteDB( SfxRequest& rReq )
                 if ( pReqArgs && (pQueryItem =
                         pReqArgs->GetItemIfSet( SCITEM_QUERYDATA )) )
                 {
-                    SCTAB nCurTab = GetViewData().GetTabNo();
+                    SCTAB nCurTab = GetViewData().CurrentTabForData();
                     SCTAB nRefTab = GetViewData().GetRefTabNo();
 
                     // If RefInput switched to a different sheet from the data 
sheet,
@@ -710,7 +710,7 @@ void ScCellShell::ExecuteDB( SfxRequest& rReq )
                 if ( pReqArgs && (pPItem =
                         pReqArgs->GetItemIfSet( SCITEM_PIVOTDATA )) )
                 {
-                    SCTAB nCurTab = GetViewData().GetTabNo();
+                    SCTAB nCurTab = GetViewData().CurrentTabForData();
                     SCTAB nRefTab = GetViewData().GetRefTabNo();
 
                     // If RefInput switched to a different sheet from the data 
sheet,
@@ -879,7 +879,7 @@ void ScCellShell::ExecuteDB( SfxRequest& rReq )
                     ScDocument& rDoc = GetViewData().GetDocument();
                     SCCOL nCurX = GetViewData().GetCurX();
                     SCROW nCurY = GetViewData().GetCurY();
-                    SCTAB nTab = GetViewData().GetTabNo();
+                    SCTAB nTab = GetViewData().CurrentTabForData();
                     ScAddress aCursorPos( nCurX, nCurY, nTab );
                     sal_uInt32 nIndex = rDoc.GetAttr(
                                 nCurX, nCurY, nTab, ATTR_VALIDDATA 
)->GetValue();
@@ -1123,7 +1123,7 @@ void ScCellShell::GetDBState( SfxItemSet& rSet )
     ScDocument& rDoc        = rDocSh.GetDocument();
     SCCOL       nPosX       = rData.GetCurX();
     SCROW       nPosY       = rData.GetCurY();
-    SCTAB       nTab        = rData.GetTabNo();
+    SCTAB       nTab        = rData.CurrentTabForData();
 
     bool bAutoFilter = false;
     bool bAutoFilterTested = false;
@@ -1290,7 +1290,7 @@ void ScCellShell::GetDBState( SfxItemSet& rSet )
                     {
                         nStartCol = GetViewData().GetCurX();
                         nStartRow = GetViewData().GetCurY();
-                        nStartTab = GetViewData().GetTabNo();
+                        nStartTab = GetViewData().CurrentTabForData();
                     }
 
                     ScDBData* pDBData = bSelected
@@ -1327,7 +1327,7 @@ void ScCellShell::GetDBState( SfxItemSet& rSet )
 
                         SCCOL nStartCol = GetViewData().GetCurX();
                         SCROW nStartRow = GetViewData().GetCurY();
-                        SCTAB nStartTab = GetViewData().GetTabNo();
+                        SCTAB nStartTab = GetViewData().CurrentTabForData();
                         bool bAnyQuery = false;
 
                         ScQueryParam aParam;
diff --git a/sc/source/ui/view/cellsh3.cxx b/sc/source/ui/view/cellsh3.cxx
index 2fcdd0ceef40..6f049ee43a06 100644
--- a/sc/source/ui/view/cellsh3.cxx
+++ b/sc/source/ui/view/cellsh3.cxx
@@ -370,7 +370,7 @@ void ScCellShell::Execute( SfxRequest& rReq )
                         if (
                             aCursorPos.Col() == GetViewData().GetCurX() &&
                             aCursorPos.Row() == GetViewData().GetCurY() &&
-                            aCursorPos.Tab() == GetViewData().GetTabNo()
-e 
... etc. - the rest is truncated

Reply via email to