A Microsoft Office (Excel, Word) forum. OfficeFrustration

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » OfficeFrustration forum » Microsoft Word » Tables
Site Map Home Register Authors List Search Today's Posts Mark Forums Read  

Working with a nesting table from inside a nested table - switchingrows.



 
 
Thread Tools Display Modes
  #1  
Old December 8th, 2009, 12:03 PM posted to microsoft.public.word.tables
TimvG
external usenet poster
 
Posts: 12
Default Working with a nesting table from inside a nested table - switchingrows.

Imagine you have a table, and nested in each cell is a table. Your
selection is inside one of the nested tables. You want to switch the
row containing your selected table with the row above it. What makes
this a bit tricky is that (it seems) you can't directly identify the
nesting (exterior) cell/row/table.

Below FWIW is the code I came up with. It seems to work fine, but I'm
hoping/expecting there's a more elegant and robust way to do it.

[An additional constraint I was working with was that if your nested
table is already in the top row of the nesting table, it should seem
to the user as if nothing at all happened; e.g. the cursor should stay
in the same spot. Hence the NestingRowIndex function.]

Sub MoveRowUp()
Dim DeleteMe As Row
If NestingRowIndex 1 Then
Selection.Expand wdTable
Selection.Collapse wdCollapseEnd
Selection.MoveEnd wdCharacter
Selection.Cells(1).Range.Copy
Set DeleteMe = Selection.Rows(1)
Selection.Expand wdRow
Selection.MoveUp
Selection.Rows.Add
Selection.Cells(1).Range.Paste
DeleteMe.Delete
Else
MsgBox ("You're at the top already.")
End If

End Sub

Function NestingRowIndex()
'You're in a nested table. What is the row number of cell in which
the table is nested?
Dim testRange As Range
Set testRange = Selection.Range
testRange.Expand wdTable
testRange.Collapse wdCollapseEnd
testRange.MoveEnd wdCharacter
NestingRowIndex = testRange.Cells(1).RowIndex
End Function


PS my approach was based on a suggestion by Cindy Meister,
http://social.msdn.microsoft.com/For...8-1a55b5dd7a79
 




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump


All times are GMT +1. The time now is 06:50 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 OfficeFrustration.
The comments are property of their posters.