Reply
 
Thread Tools Display Modes
  #1   Report Post  
Posted to microsoft.public.word.docmanagement
Mark Tangard[_4_] Mark Tangard[_4_] is offline
external usenet poster
 
Posts: 10
Default Word XP Tables with merged cells

I think I know what Cookie's saying. Word really doesn't have a sensible way to
skip single-cell rows (a common structure in tables) when you need to add a
column to all the non-single-cell rows. This exasperated me for literally years
until I finally wrote an angry macro to handle it, or most of it (see notes &
caveats after macro). The code isn't terribly sleek but it works:

Sub AddColumnToScruffyTable()
Dim t As Table, rngStart As Range, rngEnd As Range, p As Paragraph
Set t = Selection.Tables(1)

' Enable auto-fit (I despise it, but it's needed here)
t.AllowAutoFit = True

' Set or confirm the table's absolute width (see notes)
t.PreferredWidthType = wdPreferredWidthPoints
t.PreferredWidth = InchesToPoints(6.5)

' Mark the table's start & end, to grab onto after it gets julienned
Set rngStart = t.Range.Cells(1).Range
Set rngEnd = t.Range.Cells(t.Range.Cells.Count).Range

' Find the first 12-cell row
t.Range.Cells(1).Select
FindNext12CellRow:
Do Until Selection.Rows(1).Cells.Count = 12
Selection.MoveRight wdCell
Loop

' Separate the 12-cell row from what's above it
Selection.SplitTable

' Laboriously separate the row from what's below it
' creating a one-row table
Selection.MoveDown wdLine
Selection.Cells(1).Range.Select
Selection.Collapse wdCollapseEnd
Selection.MoveLeft wdCharacter, 1
Selection.MoveDown wdLine, 1
' Stop looping if finished
If Selection.Information(wdWithInTable) = False Then GoTo ZapGaps
Selection.SplitTable

' Get back into the 12-cell row
Selection.MoveUp wdLine, 1

' Add the column
' (edit last # on this line dep on where the column needs to go)
' (this example assumes a new 3rd column)
' (to add a column at the far right, end this line after ".Add")
Selection.Tables(1).Columns.Add BeforeColumn:=Selection.Tables(1).Columns(4)

' Resize this one-row table so it matches the rest
Selection.Tables(1).PreferredWidth = InchesToPoints(6.5)

' Jump across the lower gap
Do Until Selection.Information(wdWithInTable) = False
Selection.MoveDown wdLine, 1
Loop
Selection.MoveDown wdLine, 1

' Repeat
GoTo FindNext12CellRow

ZapGaps:
' Close up all the gaps the splitting created
For Each p In ActiveDocument.Range(rngStart.Start, rngEnd.End).Paragraphs
If p.Range.Information(wdWithInTable) = False Then p.Range.Delete
Next
End Sub

Notes:
- Assumes a fixed table width of 6.5" and assumes this width is to be
maintained. Edit the two 6.5's in the code for other situations.
- Doesn't deal with the 3-cell header row at all.
- Doesn't process the last row if it's a 12-cell row.
- Because of the dirty way it "finds" the next 12-cell row, all hell breaks
loose (infinite loop) if the last row doesn't have 12 cells, so make sure it
does, OR or add code to append a dummy 12-cell row first and chop it off afterward.

Hope this helps. I feel your pain....

=====
Mark Tangard
MS Word MVP 2001-2004


Peter T. Daniels wrote:
Since you didn't say otherwise, I'll assume you want the new column at
either the far left or the far right. What happens when you hover and
select column(s) that way and tell it to insert a column to the left/
right?

On Jul 13, 6:04 pm, Cookie wrote:

On Jul 9, 5:06 pm, "Peter T. Daniels" wrote:


Where does the new column need to go?


By "every other row," do you mean all the rows other than the heading,
or do you mean alternate rows?


Either way, if you hover the cursor over the top of the table till it
turns into a down-arrow, and then click to select the column it has
discovered, you can use the "add column left" or "add column right"
button to do just that.


On Jul 9, 4:00 pm, Cookie wrote:


I have a table that has 12 columns. The heading row only has three
(they have been merged). And, every other row is one column (merged
across). Now, my consultant wants me to insert a column in the entire
table. What I normally do is split the table between rows, add a new
column in each of the single tables, and then join them up again.
There has to be a better way!
Any help will be appreciated.-



Except, when I hover over a column, it not only picks up that column,
but also the columns that have been merged. So I don't have a "clean"
column to insert a new column by. Does that make sense??-



Reply
Thread Tools
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Hiding rows in RTF tables with merged cells? Chris Shearer Cooper Tables 4 March 13th 07 12:42 AM
Formatting tables with merged and split cells Cheryl Tables 2 February 9th 07 07:39 PM
how to check a word doc is having merged cells? sukhas r shenoi Tables 1 April 22nd 05 10:59 AM
Word should be able to sort tables with merged cells outspokengolem Tables 1 April 16th 05 07:21 AM
Word table: How do I know which cells have been merged? Debbe Tables 2 January 27th 05 12:46 AM


All times are GMT +1. The time now is 07:04 PM.

Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 Microsoft Office Word Forum - WordBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Word"