Table Style Not Applying Correctly via VBA

I have a form where the user can click on check buttons to apply heading row formatting or last row formatting and they have a selection of my own table styles to choice from.

The problem I have is when a table already has heading row and last row formatting applied and then I run the form and tell it to not apply header row formatting or last row formatting.

It is almost like it doesn't activiate.  It removes the bolding which is correct and part of the table style but it won't remove the shading and lines.

If after you have run the code you click in the table and then click Table | AutoFormat then you will see that the ticks have been taken off but it hasnt been activated in the table.  If you press APPLY now manually it will work, but it doesnt work by code.

Any ideas how I can get this to activate fully?  I'm only new to code writing.
Private Sub CommandButton2_Click()
 
      
  'Turn all formatting features off
  
    With Selection.Tables(1)
        .ApplyStyleFirstColumn = False
        .ApplyStyleHeadingRows = False
        .ApplyStyleLastColumn = False
        .ApplyStyleLastRow = False
    End With
 
  'start my formatting here
  
   If ApplyTable.OBTableA = True Then
 
    With Selection.Tables(1)
        .Style = "My Table Grid"
         
        
                If ApplyTable.CBHeadingRow = True Then
                .ApplyStyleHeadingRows = True
                Else
               .ApplyStyleHeadingRows = False
                End If
 
               If ApplyTable.CBLastRow = True Then
               .ApplyStyleLastRow = True
             Else
               .ApplyStyleLastRow = False
               End If
 
        .ApplyStyleFirstColumn = False
        .ApplyStyleLastColumn = False
    
    End With
 
 
    Else
 
        With Selection.Tables(1)
            .Style = "My Table Normal"
 
 
               If ApplyTable.CBHeadingRow = True Then
                .ApplyStyleHeadingRows = True
                Else
                .ApplyStyleHeadingRows = False
                End If
 
             If ApplyTable.CBLastRow = True Then
               .ApplyStyleLastRow = True
               Else
               .ApplyStyleLastRow = False
               End If
            
            .ApplyStyleFirstColumn = False
            .ApplyStyleLastColumn = False
        
        End With
 
 
    End If
        
    Selection.Tables(1).Rows(1).Cells(1).Select
    Selection.Collapse Direction:=wdCollapseStart
    
    Unload ApplyTable
      
    
End Sub

Open in new window

Fi69Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Fi69Connect With a Mentor Author Commented:
To fix this problem I have written code to do what the table style should do.
0
 
Joanne M. OrzechManager, Document Services CenterCommented:
I'm just jumping in here real quick (and I don't have time to research this thoroughly right now) but.... maybe you can just reset the whole table to normal and then apply your styles?
    With Selection.Tables(1)
        .Style = "Table Normal"
    End With
 
or
 
 
     With Selection.Tables(1)
        .Style = "Table Normal"
        .ApplyStyleHeadingRows = True
        .ApplyStyleLastRow = False
        .ApplyStyleFirstColumn = True
        .ApplyStyleLastColumn = False
    End With

Open in new window

0
 
Fi69Author Commented:
I tried doing that but that doesn't work either.  To be honest I think it is a bug.
0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

 
Joanne M. OrzechConnect With a Mentor Manager, Document Services CenterCommented:
Well, I know there were issues with Word 2003's table styles....

http://www.shaunakelly.com/word/tablestyles/index.html

0
 
Joanne M. OrzechManager, Document Services CenterCommented:
Good for you!
0
 
Fi69Author Commented:
Thanks for your comments
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.