Excel spreadsheet --> Word

H

heenchi

Hi folks!

I have a spreadsheet in Excel which looks simplified like this:

Code
-------------------

Column 1 Column 2 Column 3
Package 1 Production block 1 Result01
Package 1 Production block 1 Result02
Package 1 Production block 2 Result03
Package 1 Production block 2 Result04
Package 2 Production block 3 Result05
Package 2 Production block 3 Result06
 
D

Doug Robbins - Word MVP

If you copy and paste the information into Word as a table, and then run the
macro contained below, it would create a table in the following form

Package 1
Production block 1 Result01
Production block 1 Result02
Production block 2 Result03
Production block 2 Result04
Package 2
Production block 3 Result05
Production block 3 Result06

The macro could be modified to achieve the further grouping that you require

Dim source As Document, target As Document, scat As Range, tcat As Range
Dim data As Range, stab As Table, ttab As Table
Dim i As Long, j As Long, k As Long, n As Long
Set source = ActiveDocument
Set target = Documents.Add
Set stab = source.Tables(1)
k = stab.Columns.Count
Set ttab = target.Tables.Add(Range:=Selection.Range, numrows:=1,
numcolumns:=k - 1)
Set scat = stab.Cell(1, 1).Range
scat.End = scat.End – 1
ttab.Cell(1, 1).Range = scat
j = ttab.Rows.Count
For i = 1 To stab.Rows.Count
Set tcat = ttab.Cell(j, 1).Range
tcat.End = tcat.End – 1
Set scat = stab.Cell(i, 1).Range
scat.End = scat.End – 1
If scat <> tcat Then
ttab.Rows.Add
j = ttab.Rows.Count
ttab.Cell(j, 1).Range = scat
ttab.Rows.Add
For n = 2 To k
Set data = stab.Cell(i, n).Range
data.End = data.End – 1
ttab.Cell(ttab.Rows.Count, n - 1).Range = data
Next n
Else
ttab.Rows.Add
For n = 2 To k
Set data = stab.Cell(i, n).Range
data.End = data.End – 1
ttab.Cell(ttab.Rows.Count, n - 1).Range = data
Next n
End If
Next i

--
Please post any further questions or followup to the newsgroups for the
benefit of others who may be interested. Unsolicited questions forwarded
directly to me will only be answered on a paid consulting basis.

Hope this helps
Doug Robbins - Word MVP
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top