Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.word.tables
|
|||
|
|||
macro to detect merged table cells?
I'm wondering if there's a way to detect merged table cells.
As a test, I wrote the below code, wanting to examine each table in a document, then examine each cell. If I found a merged cell, I wanted to change the cell color to blue and display a message box stating "Merged cell." If the cell was not a merged cell, I wanted to change the cell color to red and display a message box stating "No merge detected." However, the code errors at this line: If oCell.Merge = True Then The error indicates that Merge is not an optional argument. I'm not sure if there's a way to detect merged cells in this manner. Here's all the code: Sub FindMergedCells() Dim oTable As Table Dim orow As Row Dim i As Integer Dim oCell As Cell For Each oTable In ActiveDocument.Tables For Each orow In oTable.Rows For Each oCell In orow.Cells If oCell.Merge = True Then ' ** code errors here ** oCell.Shading.BackgroundPatternColor = wdColorBlue MsgBox "Merged cell." Else oCell.Shading.BackgroundPatternColor = wdColorRed MsgBox "No merge detected." Next oCell Next orow Next oTable End Sub |
#2
Posted to microsoft.public.word.tables
|
|||
|
|||
macro to detect merged table cells?
Forgot to note that I'm using Word 2003.
"Tony Logan" wrote: I'm wondering if there's a way to detect merged table cells. As a test, I wrote the below code, wanting to examine each table in a document, then examine each cell. If I found a merged cell, I wanted to change the cell color to blue and display a message box stating "Merged cell." If the cell was not a merged cell, I wanted to change the cell color to red and display a message box stating "No merge detected." However, the code errors at this line: If oCell.Merge = True Then The error indicates that Merge is not an optional argument. I'm not sure if there's a way to detect merged cells in this manner. Here's all the code: Sub FindMergedCells() Dim oTable As Table Dim orow As Row Dim i As Integer Dim oCell As Cell For Each oTable In ActiveDocument.Tables For Each orow In oTable.Rows For Each oCell In orow.Cells If oCell.Merge = True Then ' ** code errors here ** oCell.Shading.BackgroundPatternColor = wdColorBlue MsgBox "Merged cell." Else oCell.Shading.BackgroundPatternColor = wdColorRed MsgBox "No merge detected." Next oCell Next orow Next oTable End Sub |
#3
Posted to microsoft.public.word.tables
|
|||
|
|||
macro to detect merged table cells?
Tony,
I think just determining if a table is uniform is all you can do. e.g., MsgBox ActiveDocument.Uniform See: http://gregmaxey.mvps.org/Table_Cell_Data.htm For to table information code. Tony Logan wrote: I'm wondering if there's a way to detect merged table cells. As a test, I wrote the below code, wanting to examine each table in a document, then examine each cell. If I found a merged cell, I wanted to change the cell color to blue and display a message box stating "Merged cell." If the cell was not a merged cell, I wanted to change the cell color to red and display a message box stating "No merge detected." However, the code errors at this line: If oCell.Merge = True Then The error indicates that Merge is not an optional argument. I'm not sure if there's a way to detect merged cells in this manner. Here's all the code: Sub FindMergedCells() Dim oTable As Table Dim orow As Row Dim i As Integer Dim oCell As Cell For Each oTable In ActiveDocument.Tables For Each orow In oTable.Rows For Each oCell In orow.Cells If oCell.Merge = True Then ' ** code errors here ** oCell.Shading.BackgroundPatternColor = wdColorBlue MsgBox "Merged cell." Else oCell.Shading.BackgroundPatternColor = wdColorRed MsgBox "No merge detected." Next oCell Next orow Next oTable End Sub |
#4
Posted to microsoft.public.word.tables
|
|||
|
|||
macro to detect merged table cells?
The reason for the error is that Merge is a method, not a property: it's how
you merge cells, not how you report if they are merged. The logic gets a bit hairy, but try iterating the cells and tracking the ..RowIndex .ColumnIndex properties. If the last .ColumnIndex value in the row is less than the maximum, that row contains merged cells. Bear in mind that the internal mechanism of Word tables has changed significantly at least twice over the last few versions of Word (and still doesn't work properly). Apart from merged cells, there's also the possibility of split cells. Don't iterate the rows: if the table has vertically merged cells, this may throw an error. For each oCell in oTable.Cells ... It's not obvious that the identity of the merged cells is significant anyway. Try this: create a table with five columns and four rows. In row 1, merge cells 1 and 2; in row 2 merge cells 2 and 3, row 3: 3 and 4, row 4: 4 and 5. Now re-align the cell boundaries. Do you have a 4 x 4 table, or a 5 x 4 table with a merged cell in each row? "Tony Logan" wrote in message ... I'm wondering if there's a way to detect merged table cells. As a test, I wrote the below code, wanting to examine each table in a document, then examine each cell. If I found a merged cell, I wanted to change the cell color to blue and display a message box stating "Merged cell." If the cell was not a merged cell, I wanted to change the cell color to red and display a message box stating "No merge detected." However, the code errors at this line: If oCell.Merge = True Then The error indicates that Merge is not an optional argument. I'm not sure if there's a way to detect merged cells in this manner. Here's all the code: Sub FindMergedCells() Dim oTable As Table Dim orow As Row Dim i As Integer Dim oCell As Cell For Each oTable In ActiveDocument.Tables For Each orow In oTable.Rows For Each oCell In orow.Cells If oCell.Merge = True Then ' ** code errors here ** oCell.Shading.BackgroundPatternColor = wdColorBlue MsgBox "Merged cell." Else oCell.Shading.BackgroundPatternColor = wdColorRed MsgBox "No merge detected." Next oCell Next orow Next oTable End Sub |
Reply |
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
macro runs from keyboard, but not from macro button-why? | Microsoft Word Help | |||
Merged cells make row disappear in table | Tables | |||
Table in a Form | Tables | |||
Select specific cells in table via macro | Microsoft Word Help | |||
Adding columns in table with merged cells | Tables |