2016-03-02 63 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 
相關問題