标签: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