用于搜索/替换表的Word VBA

时间:2015-05-04 10:47:11

标签: ms-word word-vba

在包含30多个表的Word 2010文档中,一些仅包含文本,另一些包含其他财务表。我需要用[TABLE]占位符替换所有财务表。如何使用VBA仅选择财务表?我想我可以在两个相邻的单元格中搜索数字(整数),选择表格,删除它并用文本占位符[TABLE]替换它并继续查找下一个财务表格?请帮忙。

1 个答案:

答案 0 :(得分:3)

这样的事情:

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]文本和新行。 / p>

希望这有帮助。

<强>加成

要检查4列或更多列,以及表格文本中是否存在$符号,请使用此检查:

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