Quickest method (from user’s perspective) of populating a table

A

ashwin

I have a table with one hundred rows.

What is the quickest way to populate all one hundred rows?
 
G

Graham Mayor

Populate them with what?

--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
G

Greg Maxey

Populated with what?

If you just want to put some text in each cell then you could run a macro.
This may not be the "quickest" but its pretty fast and it would number each
table cell with a sequential number:

Sub ScratchmMacro()
Dim oCell As Cell
Dim i As Long
Set oCell = Selection.Tables(1).Cell(1, 1)
i = 0
Do
i = i + 1
oCell.Range.Text = i & "."
Set oCell = oCell.Next
Loop Until oCell Is Nothing
End Sub
 
A

ashwin

Text
--
ashwin


Graham Mayor said:
Populate them with what?

--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
A

ashwin

I understand that I can update the contents of each cell individually, but is
there something faster like Pasting or setting a range to an array?
 
G

Graham Mayor

Brilliant! It's like drawing teeth :(

What sort of text? Random text? Specific text? Text from a data file?

--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
B

Beth Melton

Perhaps there is a faster way, however, we need more details on what you are
attempting to accomplish. Populating a table with text is pretty vague. Word
isn't a mind reader and while it may appear that at times we are mind
readers we're not. :)

Please post all follow-up questions to the newsgroup. Requests for
assistance by email cannot be acknowledged.

~~~~~~~~~~~~~~~
Beth Melton
Microsoft Office MVP

Coauthor of Word 2007 Inside Out:
http://www.microsoft.com/MSPress/books/9801.aspx#AboutTheBook

Word FAQ: http://mvps.org/word
TechTrax eZine: http://mousetrax.com/techtrax/
MVP FAQ site: http://mvps.org/
 
A

ashwin

No problem, Beth, I'll do my best...

I have a table with one hundred rows and I know exactly what I want each
cell to contain -a string of characters.

What is the quickest way to populate that table programmatically?

Accessing each cell individually is pretty slow, especially if I'm doing
this for 200 tables. Excel allows you to populate a Sheet using an array and
I know Word will convert text formatted with tabs and carriage returns into a
table, but how do I quickly populate a table that already exists?

At this point, it looks like the answer may be the Windows clipboard –which
I’m now trying to figure out how to access/populate from VBA.


Thank you for your patience,
 
B

Beth Melton

Is the string of characters for each cell the same? Is there a reason you
can't modify the macro Greg provided to fit your needs? All you need to do
is change: oCell.Range.Text = i & "." to oCell.Range.Text = "Your string of
characters".

Please post all follow-up questions to the newsgroup. Requests for
assistance by email cannot be acknowledged.

~~~~~~~~~~~~~~~
Beth Melton
Microsoft Office MVP

Coauthor of Word 2007 Inside Out:
http://www.microsoft.com/MSPress/books/9801.aspx#AboutTheBook

Word FAQ: http://mvps.org/word
TechTrax eZine: http://mousetrax.com/techtrax/
MVP FAQ site: http://mvps.org/
 
A

ashwin

The text in each cell will be different.

I’m currently updating each cell individually, but I haven’t tried Greg’s
..Next property/method –I imagine that has to be faster than indexing into the
table using the Cell object.

What I’m really trying to find out is: Does anyone know THE FASTEST METHOD
(from the user’s perspective) of accomplishing this?

I thought pasting would be even faster than snaking through each cell, but
it doesn’t seem like anyone wants to touch this one (or is it just a silly
assumption?).
 
B

Beth Melton

I think the underlying problem with providing you with the answer you are
looking for is we still don't understand where you are getting the text you
intend to place in each cell. IOW, other than populate a table with some
text we don't know what you are attempting to accomplish. If we don't know
what you are trying to accomplish then we don't have any recommendations.
Perhaps you could provide some background on where you are getting the
text/data and what you want as the final result. Additionally, what you mean
by "user's perspective" would be good to know too.

Please post all follow-up questions to the newsgroup. Requests for
assistance by email cannot be acknowledged.

~~~~~~~~~~~~~~~
Beth Melton
Microsoft Office MVP

Coauthor of Word 2007 Inside Out:
http://www.microsoft.com/MSPress/books/9801.aspx#AboutTheBook

Word FAQ: http://mvps.org/word
TechTrax eZine: http://mousetrax.com/techtrax/
MVP FAQ site: http://mvps.org/
 
A

ashwin

I have a DAO.Recordset I want to display in a table.
The table is already formatted.
I want to fill the table as quickly as possible from the user’s perspective
(the shortest amount of time as it will appear to the end-user while the
system is running).
 
B

Beth Melton

NOW we're getting somewhere. :)

Can't you use something like:

Set oCell = Selection.Tables(1).Cell(1, 1)
Do While Not rs.EOF
oCell.Range.Text = rs.Fields("FieldName")
Set oCell = oCell.Next
rs.MoveNext
Loop

I tested this with around 400 records and it only took a second or two. Note
I also used an ADO recordset but that shouldn't matter that much.

Please post all follow-up questions to the newsgroup. Requests for
assistance by email cannot be acknowledged.

~~~~~~~~~~~~~~~
Beth Melton
Microsoft Office MVP

Coauthor of Word 2007 Inside Out:
http://www.microsoft.com/MSPress/books/9801.aspx#AboutTheBook

Word FAQ: http://mvps.org/word
TechTrax eZine: http://mousetrax.com/techtrax/
MVP FAQ site: http://mvps.org/
 

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