Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.word.tables
|
|||
|
|||
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
Posted to microsoft.public.word.tables
|
|||
|
|||
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
Posted to microsoft.public.word.tables
|
|||
|
|||
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
Posted to microsoft.public.word.tables
|
|||
|
|||
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
Posted to microsoft.public.word.tables
|
|||
|
|||
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 | |
|
|
Similar Threads | ||||
Thread | Forum | |||
HotKey/Macro that quotes current word | Microsoft Word Help | |||
Save As Macro with current date | Microsoft Word Help | |||
How do I create change current directory macro | Microsoft Word Help | |||
Print current page macro not working | Page Layout | |||
Using current selection in a word macro | Microsoft Word Help |