diff -uNr old/sc/source/ui/dbgui/tpsort.cxx new/sc/source/ui/dbgui/tpsort.cxx --- old/sc/source/ui/dbgui/tpsort.cxx 2008-02-15 16:55:56.000000000 +0800 +++ new/sc/source/ui/dbgui/tpsort.cxx 2008-09-25 10:21:10.000000000 +0800 @@ -242,7 +242,15 @@ } else { - aLbSort1.SelectEntryPos( 1 ); + SCCOL nCol = pViewData->GetCurX(); + + if( nCol < rSortData.nCol1 ) + nCol = rSortData.nCol1; + else if( nCol > rSortData.nCol2 ) + nCol = rSortData.nCol2; + + USHORT nSort1Pos = nCol - rSortData.nCol1+1; + aLbSort1.SelectEntryPos( nSort1Pos ); aLbSort2.SelectEntryPos( 0 ); aLbSort3.SelectEntryPos( 0 ); aBtnUp1.Check(); diff -uNr old/sc/source/ui/view/cellsh2.cxx new/sc/source/ui/view/cellsh2.cxx --- old/sc/source/ui/view/cellsh2.cxx 2008-02-15 16:56:04.000000000 +0800 +++ new/sc/source/ui/view/cellsh2.cxx 2008-09-25 10:21:32.000000000 +0800 @@ -340,15 +340,20 @@ SfxItemSet aArgSet( GetPool(), SCITEM_SORTDATA, SCITEM_SORTDATA ); ScSortParam aSortParam; ScDBData* pDBData = pTabViewShell->GetDBData(); + SCCOL nCol = GetViewData()->GetCurX(); pDBData->GetSortParam( aSortParam ); + if( nCol < aSortParam.nCol1 ) + nCol = aSortParam.nCol1; + else if( nCol > aSortParam.nCol2 ) + nCol = aSortParam.nCol2; aSortParam.bHasHeader = FALSE; aSortParam.bByRow = TRUE; aSortParam.bCaseSens = FALSE; aSortParam.bIncludePattern = FALSE; aSortParam.bInplace = TRUE; aSortParam.bDoSort[0] = TRUE; - aSortParam.nField[0] = aSortParam.nCol1; + aSortParam.nField[0] = nCol; aSortParam.bAscending[0] = (nSlotId == SID_SORT_ASCENDING); for ( USHORT i=1; i