Just nu i M3-nätverket
Jump to content

Synkronisera synliga rader i kalkylblad med VBA.


Oskar Hansson

Recommended Posts

Oskar Hansson

(Excel 2003)

 

Jag vill se samma rader i det kalkylblad som jag byter till som visas i det kalkylblad som jag precis lämnade.

 

T.ex. om den första synliga raden i Sheet1 är rad 10, vill jag att rad 10 ska vara den första synliga raden i Sheet2 när jag klickar på den fliken.

 

Jag har försökt med koden nedan, men det verkar som Excel redan har bytt kalkylblad när händelsen "Deactivate" inträffar. Det fattas ett "BeforeDeactivate". Finns det något annat sätt att göra detta på?

 

Private Sub Worksheet_Activate()

   'Scroll to same row as previous sheet.
   ActiveWindow.ScrollRow = IntCurrentActiveRow

End Sub

Private Sub Worksheet_Deactivate()

   'Save visible row.
   IntCurrentActiveRow = ActiveWindow.VisibleRange.Row

End Sub

 

//Oskar

____________________________________________________

 

Simplify Life - Everything should be made as simple as possible

 

Link to comment
Share on other sites

Du får plocka aktuell vy vid annat tillfälle, bästa jag kan finna är SelectionChange:

Dim myRowSnoop As Long

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
   ActiveWindow.ScrollRow = myRowSnoop

End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
   myRowSnoop = ActiveWindow.VisibleRange.Row
End Sub

Fungerar inte alltid men mestadels.

 

Koden ovan skriven i ThisWorkbook och påverkar alla blad.

 

 

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Link to comment
Share on other sites

Oskar Hansson

Bra förslag, jag ska titta på det.

 

Jag har redan löste det ok med hjälp av knappar/kortkommandon som växlar blad. Lade till synkronisering av kolumn också.

   IntCurrentActiveRow = ActiveWindow.VisibleRange.Row
   IntCurrentActiveCol = ActiveWindow.VisibleRange.Column
   Worksheets(PblStrWs1Name).Select
   ActiveWindow.ScrollRow = IntCurrentActiveRow
   ActiveWindow.ScrollColumn = IntCurrentActiveCol

 

//Oskar

____________________________________________________

 

Simplify Life - Everything should be made as simple as possible

 

Link to comment
Share on other sites

om du är nöjd med det rekommenderas det. Händelserutinerna må vara bra men kan ge problem.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...