2016-03-02 22 views
0

我一直在试图找到一个代码来格式化一个word文档的第一个表格,然后通过其他格式的表格以另一种方式进行格式化。我发现了一个正确循环遍历所有表的代码,但没有找到排除第一个表的方法,以便对其进行不同的格式化。这是对所有的表如何在Word文档中以不同方式编写循环以格式化表格?

Sub Change_All_Tables_Formating() 
Dim oTbl As Word.Table 
Dim oCell As Word.Cell 
    For Each oTbl In ActiveDocument.Tables 
    For Each oCell In oTbl.Range.Cells 
    oCell.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter 
    Next oCell 
    oTbl.Rows(1).Shading.BackgroundPatternColorIndex = wdGray25 
    oTbl.Rows(1).Range.Bold = True 
    Next oTbl 
End Sub 

作品这是我无法适应正确格式化第一个表中的代码。它需要完全删除第一个表格中的阴影,并遮盖Word文档中其余表格的标题。我觉得如果我可以学习如何做到这一点,我将能够调整任何我想要的表格并单独格式化它们。每个文档的表格数量不同,但第一个表格总是相同的。我会感谢任何人都可以提供的帮助。

Sub Change_Tables_Formating() 
Dim oTbl As Word.Table 
Dim oCell As Word.Cell 
Set oTbl = ActiveDocument.Tables 
Set oTblcnt = wdDoc.Tables.Count 
    For oTbl = 0 To 1 
     For Each oCell In oTbl.Range.Cells 
     oCell.Range.ParagraphFormat.Alignment = wdAlignParagraphLeft 
     Next oCell 
     oTbl.Range.Shading.BackgroundPatternColorIndex = wdColorWhite 
     Next oTbl 
    For oTbl = 2 To oTblct 
     For Each oCell In oTbl.Range.Cells 
     oCell.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter 
     Next oCell 
     oTbl.Rows(1).Shading.BackgroundPatternColorIndex = wdGray25 
     oTbl.Rows(1).Range.Bold = True 
     Next oTbl 
End Sub 

回答

1

以下是我会做:

Sub Change_Tables_Formating() 
    Dim oTbl As Word.Table, i As Long 
    For Each oTbl In ActiveDocument.Tables 
     i = i + 1 
     If i = 1 Then 
      FormatFirst oTbl 
     Else 
      FormatRest oTbl 
     End If 
    Next oTbl 
End Sub 

Sub FormatFirst(tbl As Table) 
    Dim oCell 
    For Each oCell In tbl.Range.Cells 
     oCell.Range.ParagraphFormat.Alignment = wdAlignParagraphLeft 
    Next oCell 
    tbl.Range.Shading.BackgroundPatternColorIndex = wdColorWhite 

End Sub 

Sub FormatRest(tbl As Table) 
    Dim oCell 
    For Each oCell In tbl.Range.Cells 
     oCell.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter 
    Next oCell 
    tbl.Rows(1).Shading.BackgroundPatternColorIndex = wdGray25 
    tbl.Rows(1).Range.Bold = True 
End Sub 
相关问题