Reply
 
Thread Tools Display Modes
  #1   Report Post  
Posted to microsoft.public.word.tables
vrk1 vrk1 is offline
external usenet poster
 
Posts: 2
Default How to get the current Table Index value in my VBA Macro?

Hi,

I have a macro that splits the cells that have Hard returns inside all the
tables in my current document into separate rows. Someone sent me this macro
below to perform this function.

If I need this macro to operate only on the current Cell where my cursor is
and not all the tables in my document, how should I modify this?


Macro Below:

Sub RowSplit()

For x = 1 To ThisDocument.Tables.Count

For Each r In ThisDocument.Tables(x).Rows

If InStr(1, r, Chr(13)) Len(r.Cells(1).Range) Then

rowsArray = Split(r.Cells(1).Range, Chr(13))
nSubRowCount = UBound(rowsArray)

If nSubRowCount 1 Then
r.Select

For i = nSubRowCount To 1 Step -1
If Len(Replace(rowsArray(i), Chr(7), "")) 0 Then
Selection.InsertRowsBelow
ThisDocument.Tables(x).Cell(r.Index + 1,
1).Range = rowsArray(i)
r.Select
End If
Next
Selection.Range = rowsArray(0)
End If

End If

Next
Next

End Sub

  #2   Report Post  
Posted to microsoft.public.word.tables
Peter A Peter A is offline
external usenet poster
 
Posts: 315
Default How to get the current Table Index value in my VBA Macro?

In article , vrk1
@discussions.microsoft.com says...
Hi,

I have a macro that splits the cells that have Hard returns inside all the
tables in my current document into separate rows. Someone sent me this macro
below to perform this function.

If I need this macro to operate only on the current Cell where my cursor is
and not all the tables in my document, how should I modify this?


snipped

You should ask this question on one of the VBA groups.


--
Peter Aitken
Author, MS Word for Medical and Technical Writers
www.tech-word.com
  #3   Report Post  
Posted to microsoft.public.word.tables
Doug Robbins - Word MVP Doug Robbins - Word MVP is offline
external usenet poster
 
Posts: 8,832
Default How to get the current Table Index value in my VBA Macro?

Replace

For x = 1 To ThisDocument.Tables.Count

For Each r In ThisDocument.Tables(x).Rows

With

For Each r In Selection.Tables(1).Rows

and delete the final Next

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP

"vrk1" wrote in message
...
Hi,

I have a macro that splits the cells that have Hard returns inside all the
tables in my current document into separate rows. Someone sent me this
macro
below to perform this function.

If I need this macro to operate only on the current Cell where my cursor
is
and not all the tables in my document, how should I modify this?


Macro Below:

Sub RowSplit()

For x = 1 To ThisDocument.Tables.Count

For Each r In ThisDocument.Tables(x).Rows

If InStr(1, r, Chr(13)) Len(r.Cells(1).Range) Then

rowsArray = Split(r.Cells(1).Range, Chr(13))
nSubRowCount = UBound(rowsArray)

If nSubRowCount 1 Then
r.Select

For i = nSubRowCount To 1 Step -1
If Len(Replace(rowsArray(i), Chr(7), "")) 0
Then
Selection.InsertRowsBelow
ThisDocument.Tables(x).Cell(r.Index + 1,
1).Range = rowsArray(i)
r.Select
End If
Next
Selection.Range = rowsArray(0)
End If

End If

Next
Next

End Sub



  #4   Report Post  
Posted to microsoft.public.word.tables
vrk1 vrk1 is offline
external usenet poster
 
Posts: 2
Default How to get the current Table Index value in my VBA Macro?

My apologies. I will try to move this to the Word programming area, if I can.

Just to follow through on your response, when I tried what you suggested I
get an error message:

"The requested member of the collection does not exist."

Any ideas? Thank you.


"Doug Robbins - Word MVP" wrote:

Replace

For x = 1 To ThisDocument.Tables.Count

For Each r In ThisDocument.Tables(x).Rows

With

For Each r In Selection.Tables(1).Rows

and delete the final Next

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP

"vrk1" wrote in message
...
Hi,

I have a macro that splits the cells that have Hard returns inside all the
tables in my current document into separate rows. Someone sent me this
macro
below to perform this function.

If I need this macro to operate only on the current Cell where my cursor
is
and not all the tables in my document, how should I modify this?


Macro Below:

Sub RowSplit()

For x = 1 To ThisDocument.Tables.Count

For Each r In ThisDocument.Tables(x).Rows

If InStr(1, r, Chr(13)) Len(r.Cells(1).Range) Then

rowsArray = Split(r.Cells(1).Range, Chr(13))
nSubRowCount = UBound(rowsArray)

If nSubRowCount 1 Then
r.Select

For i = nSubRowCount To 1 Step -1
If Len(Replace(rowsArray(i), Chr(7), "")) 0
Then
Selection.InsertRowsBelow
ThisDocument.Tables(x).Cell(r.Index + 1,
1).Range = rowsArray(i)
r.Select
End If
Next
Selection.Range = rowsArray(0)
End If

End If

Next
Next

End Sub




  #5   Report Post  
Posted to microsoft.public.word.tables
Doug Robbins - Word MVP Doug Robbins - Word MVP is offline
external usenet poster
 
Posts: 8,832
Default How to get the current Table Index value in my VBA Macro?

You probably did not have the selection in a table when you ran it.

Enclose the routine in

If Selection.Information(wdWithInTable) = True Then
'code for routine here
End If

so that the code will only run if the selection is in a table.
--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP

"vrk1" wrote in message
...
My apologies. I will try to move this to the Word programming area, if I
can.

Just to follow through on your response, when I tried what you suggested I
get an error message:

"The requested member of the collection does not exist."

Any ideas? Thank you.


"Doug Robbins - Word MVP" wrote:

Replace

For x = 1 To ThisDocument.Tables.Count

For Each r In ThisDocument.Tables(x).Rows

With

For Each r In Selection.Tables(1).Rows

and delete the final Next

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP

"vrk1" wrote in message
...
Hi,

I have a macro that splits the cells that have Hard returns inside all
the
tables in my current document into separate rows. Someone sent me this
macro
below to perform this function.

If I need this macro to operate only on the current Cell where my
cursor
is
and not all the tables in my document, how should I modify this?


Macro Below:

Sub RowSplit()

For x = 1 To ThisDocument.Tables.Count

For Each r In ThisDocument.Tables(x).Rows

If InStr(1, r, Chr(13)) Len(r.Cells(1).Range) Then

rowsArray = Split(r.Cells(1).Range, Chr(13))
nSubRowCount = UBound(rowsArray)

If nSubRowCount 1 Then
r.Select

For i = nSubRowCount To 1 Step -1
If Len(Replace(rowsArray(i), Chr(7), ""))
0
Then
Selection.InsertRowsBelow
ThisDocument.Tables(x).Cell(r.Index + 1,
1).Range = rowsArray(i)
r.Select
End If
Next
Selection.Range = rowsArray(0)
End If

End If

Next
Next

End Sub






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
HotKey/Macro that quotes current word livetohike Microsoft Word Help 7 August 27th 07 06:21 PM
Save As Macro with current date jlawson Microsoft Word Help 2 July 19th 06 06:36 PM
How do I create change current directory macro techman Microsoft Word Help 1 December 12th 05 05:35 PM
Print current page macro not working Mike Page Layout 0 August 8th 05 02:34 PM
Using current selection in a word macro sebFlyte Microsoft Word Help 1 July 6th 05 04:22 PM


All times are GMT +1. The time now is 07:47 AM.

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"