【发布时间】:2015-05-04 10:47:10
【问题描述】:
在包含 30 多个表格的 Word 2010 文档中,其中一些仅包含文本,其余包含财务表格。我需要用 [TABLE] 占位符替换所有财务表。如何使用 VBA 仅选择财务表?我想我可以在两个相邻的单元格中搜索数字(整数),选择表格,删除它并用文本占位符 [TABLE] 替换它,然后继续查找下一个财务表格?请帮忙。
【问题讨论】:
在包含 30 多个表格的 Word 2010 文档中,其中一些仅包含文本,其余包含财务表格。我需要用 [TABLE] 占位符替换所有财务表。如何使用 VBA 仅选择财务表?我想我可以在两个相邻的单元格中搜索数字(整数),选择表格,删除它并用文本占位符 [TABLE] 替换它,然后继续查找下一个财务表格?请帮忙。
【问题讨论】:
类似这样的:
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
【讨论】: