2015-05-04 32 views
2

在包含30多個表格的Word 2010文檔中,某些文檔僅包含文本,其餘爲財務表格。我需要用[TABLE]佔位符替換所有財務表。我如何使用VBA僅選擇財務表格?我想我可以在兩個相鄰的單元格中搜索數字(整數),選擇表格,將其刪除並用文本佔位符[TABLE]替換,然後繼續查找下一張財務表格?請幫忙。用於搜索/替換表格的Word VBA

回答

2

事情是這樣的:

Sub ReplaceTables() 
    Dim oTable As Table 
    Dim oRng As Range 
    For Each oTable In ThisDocument.Tables 
     If oTable.Rows.Count > 1 And oTable.Columns.Count > 1 Then 
      If IsNumeric(oTable.Cell(2, 1).Range.Words(1).Text) And _ 
         IsNumeric(oTable.Cell(2, 2).Range.Words(1).Text) Then 
       Set oRng = oTable.Range 
       oTable.Delete 
       oRng.Text = "[TABLE]" & vbCrLf 
      End If 
     End If 
    Next 
    Set oTable = Nothing 
    Set oRng = Nothing 
End Sub 

它遍歷文檔中的所有表中,前兩個單元格,如果第一個字是數字,而第二行檢查,以便刪除該表並提出[TABLE]文本和一個新行代替。

希望這會有所幫助。

加成

要檢查是否有4列以上,在表中的文本$符號的存在,使用這種檢查來代替:

If oTable.Columns.Count >= 4 Then 
    If InStrRev(oTable.Range.Text, "$") > 0 Then 
+0

謝謝!這在一些,但不是我所有的表上都有效。我正在絞盡腦汁尋找一個能在所有桌子上工作的共同標準。行/列的數量和文本的位置因表而異。那麼,是否有任何方法可以改變它以在每個表格的最後一個單元格中查找數字文本,然後用佔位符替換該表格?或者在表格中搜索「$」,然後用佔位符替換該表格? – Luuti

+0

這是一個書面代碼的嘗試。請指引我,給我的語法,使用對象等 子AA_TablePlaceholder() 「 」 AA_TablePlaceholder宏 「替換表有4個或更多的列和$用一個佔位符 」 昏暗OTB如表 暗淡FINDTEXT作爲字符串 對於每個OTB在ActiveDocument.Tables 「檢查表中有4分或更多的列 如果oTb.Columns.Count> = 4那麼 FINDTEXT = 「$」 有了選擇 .HomeKey單位: = wdStory 隨着.Find .ClearFormatting 。文本= FINDTEXT 結束如果 的do while .Execute Selection.Delete Selection.TypeText文本:= 「[表格]」 循環 結束隨着 結束隨着 結束SU – Luuti

+0

真的非常感謝你!它的作品非常漂亮。我實際上將If與以前的建議結合起來如果表格有多於一行並且等於或多於四列.... – Luuti