Word VBA技术:一组操作文档表格的代码

2023-02-24 20:31:39 浏览数 (2)

标签:Word VBA

代码1:选择表格内的单元格区域

使用Selection.SetRange语句来选择表格内指定的单元格区域。示例代码:

代码语言:javascript复制
'检查光标是否处于表格内
If Selection.Information(wdWithInTable) = False Then Exit Sub
'选择表格内第2行第2列到第3行第3列的单元格区域
Selection.SetRange Start:=Selection.Tables(1).Cell(2, 2).Range.Start, End:=Selection.Tables(1).Cell(3, 3).Range.End

代码2:删除表格内第一列中包含指定文本的行

运行代码后,在对话框中输入指定文本,删除表格中包含该文本的所有行。代码如下:

代码语言:javascript复制
Dim strText As String
Dim objRow As Row
If Selection.Information(wdWithInTable) = False Then Exit Sub
strText = InputBox$("输入想要删除的文本:", "删除行")
For Each objRow In Selection.Tables(1).Rows
 If objRow.Cells(1).Range.Text = strText & vbCr & Chr(7) Then objRow.Delete
Next objRow

代码3:显示表格内第一列中每个单元格的内容

下面的代码遍历表格第1列并依次显示其单元格内容:

代码语言:javascript复制
Dim objRange As Range
Dim objCell As Cell
For Each objCell In Selection.Tables(1).Columns(1).Cells
 Set objRange = objCell.Range
 objRange.SetRange Start:=objRange.Start, End:=objRange.End - 1
 MsgBox objRange.Text
Next objCell

代码4:获取表格内单元格跨行数

当我们合并表格内的单元格后,可以使用代码获取合并的单元格占几行,代码如下:

代码语言:javascript复制
Dim objCell As Cell
For Each objCell In ActiveDocument.Tables(1).Range.Cells
 objCell.Select
 MsgBox "跨行数 = " & _
  (Selection.Information(wdEndOfRangeRowNumber) - _
  Selection.Information(wdStartOfRangeRowNumber))   1
Next objCell

0 人点赞