一、遍历
word中遍历所有表格的每个单元格。因为在单元格时会常出错。浪费了不少时间。
Sub a()Dim doc As Document, tb As Table, ce As cellDim rng As Range, p As ParagraphSet doc = ActiveDocumentFor Each tb In doc.TablesFor Each ce In tb.Range.Cells '关键处就是这里一定要用tb.Range.Cells'具体处理每个单元格中的东西Set p = ce.Range.Paragraphs.Last '单元格最后一个段落If Asc(p.Range.Text) = 13 Then '看似没东西,实则若是^13时Set p = p.Previous '上一个段落If Not p Is Nothing Then '不能为空,表示至少2个段落Set rng = p.Rangerng.Collapse wdCollapseEndrng.MoveEnd wdCharacter, -1rng.DeleteEnd IfEnd IfNextNext
End Sub
注意:一定是tb.Range.Cells,否则你去判断合并横向或纵向单元格,会累死人。
二、两个回车符
单元格最后看似是两个回车符,用^p去替换^p^p,无效。然后用vba逐个字符查看了一下,最后两个看似回车符的是^13^13,也即vbCr,用^13去替换^13^13无效,好像很多年前,这样替换就出现过问题,尽管正确,但在单元格的最后两个字符替换时会失效。
所以在单元格时,一般用硬键盘来做。即直接用模拟键盘的删除键来做。做判断有这样的字符(见上面代码),再定位到这个段落的末尾,直接用键盘delete进行删除。果然有效。