【问题标题】:Word VBA for Search/Replace tables用于搜索/替换表的 Word VBA
【发布时间】:2015-05-04 10:47:10
【问题描述】:

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

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    类似这样的:

    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
    

    【讨论】:

    • 谢谢!这适用于一些,但不是我所有的桌子。我绞尽脑汁想找到一个适用于所有牌桌的公分母。行/列的数量和文本的位置因表格而异。那么,有没有办法改变它以在每个表格的最后一个单元格中查找数字文本,然后用占位符替换该表格?还是在表中搜索“$”,然后用占位符替换该表?
    • 这里是写代码的尝试。请指导我的语法、对象的使用等。 Sub AA_TablePlaceholder() ' ' AA_TablePlaceholder Macro ' 用 4 列或更多列替换表,并用占位符替换 $ ' 将 oTb 作为表将 FindText 调暗为 ActiveDocument 中每个 oTb 的字符串。 Tables '检查表是否有 4 列或更多列 If oTb.Columns.Count >= 4 Then FindText = "$" With Selection .HomeKey Unit:=wdStory With .Find .ClearFormatting .Text = FindText End If Do While .Execute Selection。删除 Selection.TypeText Text:="[TABLE]" Loop End With End With End Su
    • 非常感谢您!它工作得很好。实际上,我将 If 与您之前的建议结合在一起,如果表有多行且等于或多于四列....
    猜你喜欢
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2015-07-11
    • 1970-01-01
    相关资源
    最近更新 更多